Browse Source

update 测试收货分堆

main^2
yangzhenli 1 year ago
parent
commit
f2bdeb2641
  1. 2
      jnpf-library/jnpf-library-biz/src/main/java/jnpf/mapper/TBookGoWhereMapper.java
  2. 6
      jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/ILibraryService.java
  3. 2
      jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/TBookGoWhereService.java
  4. 38
      jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/impl/LibraryServiceImpl.java
  5. 4
      jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/impl/TBookGoWhereServiceImpl.java
  6. 199
      jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/impl/TReceiveGoodsMainServiceImpl.java
  7. 1
      jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/impl/TSelectionOrderingMainServiceImpl.java
  8. 3
      jnpf-library/jnpf-library-biz/src/main/resources/mapper/TBookGoWhereMapper.xml
  9. 37
      jnpf-library/jnpf-library-controller/src/main/java/jnpf/controller/ReceiveGoodsMainController.java
  10. 2
      jnpf-library/jnpf-library-entity/src/main/java/jnpf/enump/ReceiveGoodsMainEnum.java
  11. 2
      jnpf-library/jnpf-library-entity/src/main/java/jnpf/model/dto/ReceiveGoodsMainDto.java

2
jnpf-library/jnpf-library-biz/src/main/java/jnpf/mapper/TBookGoWhereMapper.java

@ -19,6 +19,6 @@ public interface TBookGoWhereMapper extends BaseMapper<TBookGoWhere> {
List<ReceiveGoodsMainDto.TBookGoWhereEntity> getStackingInformation(@Param("bookNumber") String bookNumber,@Param("corpId") String corpId); List<ReceiveGoodsMainDto.TBookGoWhereEntity> getStackingInformation(@Param("bookNumber") String bookNumber,@Param("corpId") String corpId);
List<ReceiveGoodsMainDto.TBookGoWhereEntity> getStackingInformationByRelationId(@Param("id") Long id); List<ReceiveGoodsMainDto.TBookGoWhereEntity> getStackingInformationByRelationId(@Param("bookNumber") String bookNumber,@Param("id") Long id);
} }

6
jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/ILibraryService.java

@ -5,10 +5,12 @@ import com.baomidou.mybatisplus.extension.service.IService;
import jnpf.entity.TBookGoWhere; import jnpf.entity.TBookGoWhere;
import jnpf.entity.TLibrary; import jnpf.entity.TLibrary;
import jnpf.entity.TSelectionOrderingBooks; import jnpf.entity.TSelectionOrderingBooks;
import jnpf.model.dto.ReceiveGoodsMainDto;
import jnpf.model.dto.SelectionOrderingMainDto; import jnpf.model.dto.SelectionOrderingMainDto;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set;
/** /**
* 图书去向表(TBookGoWhere)表服务接口 * 图书去向表(TBookGoWhere)表服务接口
@ -18,5 +20,9 @@ import java.util.Map;
*/ */
public interface ILibraryService extends IService<TLibrary>{ public interface ILibraryService extends IService<TLibrary>{
IPage<TLibrary> getLibraryList(SelectionOrderingMainDto.GetLibraryListParam param); IPage<TLibrary> getLibraryList(SelectionOrderingMainDto.GetLibraryListParam param);
ReceiveGoodsMainDto.BunchingInfo getBunchingInfoByBookNumber(String bookNumber);
List<TLibrary> getListByBookNumberList(Set<String> queryBookInfoNumberList);
} }

2
jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/TBookGoWhereService.java

@ -18,6 +18,6 @@ public interface TBookGoWhereService extends IService<TBookGoWhere> {
List<ReceiveGoodsMainDto.TBookGoWhereEntity> getStackingInformation(String bookNumber,String corpId); List<ReceiveGoodsMainDto.TBookGoWhereEntity> getStackingInformation(String bookNumber,String corpId);
List<ReceiveGoodsMainDto.TBookGoWhereEntity> getStackingInformationByRelationId(Long id); List<ReceiveGoodsMainDto.TBookGoWhereEntity> getStackingInformationByRelationId(String bookNumber,Long id);
} }

38
jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/impl/LibraryServiceImpl.java

@ -1,5 +1,6 @@
package jnpf.service.impl; package jnpf.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@ -7,17 +8,23 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import jnpf.entity.TBookGoWhere; import jnpf.entity.TBookGoWhere;
import jnpf.entity.TLibrary; import jnpf.entity.TLibrary;
import jnpf.entity.TSelectionOrderingBooks; import jnpf.entity.TSelectionOrderingBooks;
import jnpf.exception.DataException;
import jnpf.mapper.LibraryMapper; import jnpf.mapper.LibraryMapper;
import jnpf.mapper.TBookGoWhereMapper; import jnpf.mapper.TBookGoWhereMapper;
import jnpf.model.dto.ReceiveGoodsMainDto;
import jnpf.model.dto.SelectionOrderingMainDto; import jnpf.model.dto.SelectionOrderingMainDto;
import jnpf.service.ILibraryService; import jnpf.service.ILibraryService;
import lombok.Data; import lombok.Data;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Optional;
import java.util.Set;
/** /**
* 图书去向表(TBookGoWhere)表服务实现类 * 图书去向表(TBookGoWhere)表服务实现类
@ -31,6 +38,35 @@ public class LibraryServiceImpl extends ServiceImpl<LibraryMapper, TLibrary> imp
@Override @Override
public IPage<TLibrary> getLibraryList(SelectionOrderingMainDto.GetLibraryListParam param) { public IPage<TLibrary> getLibraryList(SelectionOrderingMainDto.GetLibraryListParam param) {
return this.lambdaQuery().page(new Page<>(param.getCurrent(),param.getSize())); return this.lambdaQuery().page(new Page<>(param.getCurrent(), param.getSize()));
}
@Override
public ReceiveGoodsMainDto.BunchingInfo getBunchingInfoByBookNumber(String bookNumber) {
// List<TSelectionOrderingBooks> libraryList = this.baseMapper.getLibraryList();
// Optional<TSelectionOrderingBooks> bookInfo = libraryList.stream().findFirst();
//查询图书信息
Optional<TLibrary> bookInfo = this.lambdaQuery()
.eq(TLibrary::getBookNumber, bookNumber)
.list().stream().findFirst();
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;
}
@Override
@Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)
public List<TLibrary> getListByBookNumberList(Set<String> queryBookInfoNumberList) {
return this.lambdaQuery()
.in(TLibrary::getBookNumber, queryBookInfoNumberList)
.list();
} }
} }

4
jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/impl/TBookGoWhereServiceImpl.java

@ -30,7 +30,7 @@ public class TBookGoWhereServiceImpl extends ServiceImpl<TBookGoWhereMapper, TBo
} }
@Override @Override
public List<ReceiveGoodsMainDto.TBookGoWhereEntity> getStackingInformationByRelationId(Long id) { public List<ReceiveGoodsMainDto.TBookGoWhereEntity> getStackingInformationByRelationId(String bookNumber,Long id) {
return this.baseMapper.getStackingInformationByRelationId(id); return this.baseMapper.getStackingInformationByRelationId(bookNumber,id);
} }
} }

199
jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/impl/TReceiveGoodsMainServiceImpl.java

@ -103,9 +103,9 @@ public class TReceiveGoodsMainServiceImpl extends ServiceImpl<TReceiveGoodsMainM
if (null == param.getId()) { if (null == param.getId()) {
String idPrefix = "SH" + LocalDateTimeUtil.format(LocalDateTime.now(), "yyyyMMdd"); String idPrefix = "SH" + LocalDateTimeUtil.format(LocalDateTime.now(), "yyyyMMdd");
receiveGoodsMain.setId(SnowFlake.nextId() + ""); receiveGoodsMain.setId(SnowFlake.nextId() + "");
String receiptNumber=param.getReceiptNumber(); String receiptNumber = param.getReceiptNumber();
if (StrUtil.isBlank(receiptNumber)){ if (StrUtil.isBlank(receiptNumber)) {
receiptNumber=String.format("%s%03d", idPrefix, redisSerialNumberUtils.generateSerialNumber(idPrefix)); receiptNumber = String.format("%s%03d", idPrefix, redisSerialNumberUtils.generateSerialNumber(idPrefix));
} }
receiveGoodsMain.setReceiptNumber(receiptNumber); receiveGoodsMain.setReceiptNumber(receiptNumber);
receiveGoodsMain.setCreateId(user.getUserId()); receiveGoodsMain.setCreateId(user.getUserId());
@ -123,6 +123,7 @@ public class TReceiveGoodsMainServiceImpl extends ServiceImpl<TReceiveGoodsMainM
receiveGoodsMain.setPackageQuantity(param.getPackageQuantity()); receiveGoodsMain.setPackageQuantity(param.getPackageQuantity());
receiveGoodsMain.setDeliveryParty(param.getDeliveryParty()); receiveGoodsMain.setDeliveryParty(param.getDeliveryParty());
receiveGoodsMain.setReceiveTime(param.getReceiveTime()); receiveGoodsMain.setReceiveTime(param.getReceiveTime());
receiveGoodsMain.setSignPersonTime(LocalDateTime.now());
receiveGoodsMain.setUpdateId(user.getUserId()); receiveGoodsMain.setUpdateId(user.getUserId());
receiveGoodsMain.setUpdateTime(LocalDateTime.now()); receiveGoodsMain.setUpdateTime(LocalDateTime.now());
receiveGoodsMain.setUpdateName(user.getUserName()); receiveGoodsMain.setUpdateName(user.getUserName());
@ -142,15 +143,15 @@ public class TReceiveGoodsMainServiceImpl extends ServiceImpl<TReceiveGoodsMainM
} }
this.saveOrUpdate(receiveGoodsMain); this.saveOrUpdate(receiveGoodsMain);
//版本馆直接生成二维码 //版本馆直接生成二维码
if (mainStatusEnum== ReceiveGoodsMainEnum.MainStatusEnum.LISTING){ if (mainStatusEnum == ReceiveGoodsMainEnum.MainStatusEnum.LISTING) {
//生成二维码 //生成二维码
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
DictionaryDataEntity data = dictionaryDataApi.getByTypeDataCode("SampleLibrary", "xtaddr").getData(); DictionaryDataEntity data = dictionaryDataApi.getByTypeDataCode("SampleLibrary", "xtaddr").getData();
String systemUrl="http://61.169.37.106:9172/api/file/Image/preview/"; String systemUrl = "http://61.169.37.106:9172/api/file/Image/preview/";
if (null!=data){ if (null != data) {
systemUrl=data.getDescription(); systemUrl = data.getDescription();
} }
QrCodeUtil.generate(systemUrl, 1000, 1000,"", byteArrayOutputStream); QrCodeUtil.generate(systemUrl, 1000, 1000, "", byteArrayOutputStream);
MockMultipartFile mockMultipartFile = new MockMultipartFile("上架.png", "上架.png", "text/plain", byteArrayOutputStream.toByteArray()); MockMultipartFile mockMultipartFile = new MockMultipartFile("上架.png", "上架.png", "text/plain", byteArrayOutputStream.toByteArray());
FileInfo preview = fileUploadApi.uploadFile(mockMultipartFile, fileApi.getPath(FileTypeConstant.BIVISUALPATH), "preview", "上架.png"); FileInfo preview = fileUploadApi.uploadFile(mockMultipartFile, fileApi.getPath(FileTypeConstant.BIVISUALPATH), "preview", "上架.png");
@ -179,6 +180,9 @@ public class TReceiveGoodsMainServiceImpl extends ServiceImpl<TReceiveGoodsMainM
} }
List<ReceiveGoodsMainDto.BunchingInfo> bunchingInfoList = param.getBunchingInfoList(); List<ReceiveGoodsMainDto.BunchingInfo> bunchingInfoList = param.getBunchingInfoList();
Integer quantityReceived = receiveGoodsMain.getQuantityReceived(); Integer quantityReceived = receiveGoodsMain.getQuantityReceived();
if (null == quantityReceived) {
quantityReceived = 0;
}
final UserInfo user = UserProvider.getUser(); final UserInfo user = UserProvider.getUser();
//计算签收数量 //计算签收数量
for (ReceiveGoodsMainDto.BunchingInfo bunchingInfo : bunchingInfoList) { for (ReceiveGoodsMainDto.BunchingInfo bunchingInfo : bunchingInfoList) {
@ -196,9 +200,9 @@ public class TReceiveGoodsMainServiceImpl extends ServiceImpl<TReceiveGoodsMainM
.eq(TBookGoWhere::getCreateCorpId, receiveGoodsMain.getCreateCorpId()) .eq(TBookGoWhere::getCreateCorpId, receiveGoodsMain.getCreateCorpId())
//todo 非样书室时根据所属类型及部门id去查询应送数量 //todo 非样书室时根据所属类型及部门id去查询应送数量
//版本馆根据类型匹配 //版本馆根据类型匹配
.eq(StrUtil.equals(param.getOrderType(), "2"), TBookGoWhere::getOrderType, param.getOrderType()) .eq(!StrUtil.equals(param.getOrderType(), "3"), TBookGoWhere::getOrderType, param.getOrderType())
//业务部根据部门id匹配 //业务部根据部门id匹配
.eq(StrUtil.equals(param.getOrderType(), "1"), TBookGoWhere::getCreateDeptId, receiveGoodsMain.getCreateDeptId()) // .eq(StrUtil.equals(param.getOrderType(), "1"), TBookGoWhere::getCreateDeptId, receiveGoodsMain.getCreateDeptId())
.eq(TBookGoWhere::getWarehouseEntryFlag, "0") .eq(TBookGoWhere::getWarehouseEntryFlag, "0")
.eq(TBookGoWhere::getType, "0") .eq(TBookGoWhere::getType, "0")
.eq(TBookGoWhere::getDelFlag, "0") .eq(TBookGoWhere::getDelFlag, "0")
@ -239,22 +243,9 @@ public class TReceiveGoodsMainServiceImpl extends ServiceImpl<TReceiveGoodsMainM
if (StrUtil.isBlank(bookNumber)) { if (StrUtil.isBlank(bookNumber)) {
throw new DataException("请输入图书编号"); throw new DataException("请输入图书编号");
} }
//查询图书信息
Optional<TLibrary> bookInfo = libraryService.lambdaQuery()
.eq(TLibrary::getBookNumber, bookNumber)
.list().stream().findFirst();
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());
//todo 新增下印册书 //todo 新增下印册书
return bunchingInfo; //查询图书信息
return libraryService.getBunchingInfoByBookNumber(bookNumber);
} }
@Override @Override
@ -298,7 +289,16 @@ public class TReceiveGoodsMainServiceImpl extends ServiceImpl<TReceiveGoodsMainM
if (orderTypeEnum == ReceiveGoodsMainEnum.OrderTypeEnum.SAMPLE_BOOKSTORE) { if (orderTypeEnum == ReceiveGoodsMainEnum.OrderTypeEnum.SAMPLE_BOOKSTORE) {
param.setUserId(UserProvider.getUser().getUserId()); param.setUserId(UserProvider.getUser().getUserId());
} else { } else {
param.setCorpId(UserProvider.getUser().getOrganizeId()); if (StrUtil.isNotBlank(UserProvider.getUser().getOrganizeId())) {
Optional<OrganizeEntity> 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);
param.setCorpId(corp.getId());
}
}
} }
try { try {
LocalDateTimeUtil.parse(param.getStartTime(), "yyyy-MM-dd HH:mm:ss"); LocalDateTimeUtil.parse(param.getStartTime(), "yyyy-MM-dd HH:mm:ss");
@ -324,14 +324,26 @@ public class TReceiveGoodsMainServiceImpl extends ServiceImpl<TReceiveGoodsMainM
boolean exists = bookGoWhereService.lambdaQuery() boolean exists = bookGoWhereService.lambdaQuery()
.eq(TBookGoWhere::getDelFlag, "0") .eq(TBookGoWhere::getDelFlag, "0")
.eq(TBookGoWhere::getType, "1") .eq(TBookGoWhere::getType, "1")
.eq(TBookGoWhere::getBookNumber, receiveGoodsBooks.getBookNumber())
.eq(TBookGoWhere::getRelationId, receiveGoodsBooks.getId()) .eq(TBookGoWhere::getRelationId, receiveGoodsBooks.getId())
.exists(); .exists();
if (exists) { if (exists) {
//查询已有数据 //查询已有数据
return bookGoWhereService.getStackingInformationByRelationId(receiveGoodsBooks.getId()); return bookGoWhereService.getStackingInformationByRelationId(receiveGoodsBooks.getBookNumber(), receiveGoodsBooks.getId());
} else { } else {
if (StrUtil.isNotBlank(UserProvider.getUser().getOrganizeId())) {
Optional<OrganizeEntity> 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);
//查询初始化去向数据 //查询初始化去向数据
return bookGoWhereService.getStackingInformation(receiveGoodsBooks.getBookNumber(), UserProvider.getUser().getOrganizeId()); return bookGoWhereService.getStackingInformation(receiveGoodsBooks.getBookNumber(), corp.getId());
}
}
return null;
} }
//todo 添加已发数 //todo 添加已发数
} }
@ -355,9 +367,17 @@ public class TReceiveGoodsMainServiceImpl extends ServiceImpl<TReceiveGoodsMainM
if (null == receiveGoodsBooks) { if (null == receiveGoodsBooks) {
throw new DataException("该图书信息不存在"); throw new DataException("该图书信息不存在");
} }
//校验分堆设置是否已存在,已存在的话直接删除,防止多次提交
bookGoWhereService.lambdaUpdate()
.eq(TBookGoWhere::getDelFlag, "0")
.eq(TBookGoWhere::getType, "1")
.eq(TBookGoWhere::getBookNumber, receiveGoodsBooks.getBookNumber())
.eq(TBookGoWhere::getRelationId, receiveGoodsBooks.getId())
.remove();
for (TBookGoWhere bookGoWhere : param.getBookGoWhereList()) { for (TBookGoWhere bookGoWhere : param.getBookGoWhereList()) {
bookGoWhere.setId(SnowFlake.nextId()); bookGoWhere.setId(SnowFlake.nextId());
bookGoWhere.setCreateTime(LocalDateTime.now()); bookGoWhere.setCreateTime(LocalDateTime.now());
bookGoWhere.setBookNumber(receiveGoodsBooks.getBookNumber());
bookGoWhere.setCreateBy(UserProvider.getUser().getUserId()); bookGoWhere.setCreateBy(UserProvider.getUser().getUserId());
bookGoWhere.setCreateName(UserProvider.getUser().getUserName()); bookGoWhere.setCreateName(UserProvider.getUser().getUserName());
bookGoWhere.setUpdateTime(LocalDateTime.now()); bookGoWhere.setUpdateTime(LocalDateTime.now());
@ -384,7 +404,7 @@ public class TReceiveGoodsMainServiceImpl extends ServiceImpl<TReceiveGoodsMainM
@Override @Override
@Transactional @Transactional(rollbackFor = Exception.class)
public void saveStackingInformationByReceiveId(ReceiveGoodsMainDto.SaveStackingInformationByReceiveIdParam param) { public void saveStackingInformationByReceiveId(ReceiveGoodsMainDto.SaveStackingInformationByReceiveIdParam param) {
if (StrUtil.isBlank(param.getSaveType())) { if (StrUtil.isBlank(param.getSaveType())) {
throw new DataException("请选择保存类型"); throw new DataException("请选择保存类型");
@ -410,6 +430,50 @@ public class TReceiveGoodsMainServiceImpl extends ServiceImpl<TReceiveGoodsMainM
.update(); .update();
return; return;
} }
String corpId = "";
if (StrUtil.isNotBlank(UserProvider.getUser().getOrganizeId())) {
Optional<OrganizeEntity> 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);
//查询初始化去向数据
corpId = corp.getId();
}
}
//确定时对所有未保存的分堆信息进行保存(即无需分堆的图书)
//校验该选书是否进行过保存分堆信息
final String organizeId = corpId;
//先查询已保存的图书列表
// CompletableFuture.runAsync(() -> {
for (TReceiveGoodsBooks tReceiveGoodsBooks : receiveGoodsBooksService.lambdaQuery()
.eq(TReceiveGoodsBooks::getRelationId, tReceiveGoodsMain.getId())
.eq(TReceiveGoodsBooks::getDelFlag, "0")
.list()) {
boolean exists = bookGoWhereService.lambdaQuery()
.eq(TBookGoWhere::getDelFlag, "0")
.eq(TBookGoWhere::getType, "1")
.eq(TBookGoWhere::getBookNumber, tReceiveGoodsBooks.getBookNumber())
.eq(TBookGoWhere::getRelationId, tReceiveGoodsBooks.getId())
.exists();
if (exists) {
continue;
}
List<ReceiveGoodsMainDto.TBookGoWhereEntity> stackingInformation = bookGoWhereService.getStackingInformation(tReceiveGoodsBooks.getBookNumber(), organizeId);
ReceiveGoodsMainDto.SaveStackingInformationParam saveParam = new ReceiveGoodsMainDto.SaveStackingInformationParam();
saveParam.setOrderType(param.getOrderType());
saveParam.setId(tReceiveGoodsBooks.getId().toString());
List<TBookGoWhere> stackingList = new ArrayList<>();
for (ReceiveGoodsMainDto.TBookGoWhereEntity tBookGoWhereEntity : stackingInformation) {
stackingList.add(BeanUtil.copyProperties(tBookGoWhereEntity, TBookGoWhere.class));
}
saveParam.setBookGoWhereList(stackingList);
this.saveStackingInformation(saveParam);
}
// });
//以下逻辑全是确定 //以下逻辑全是确定
ReceiveGoodsMainEnum.MainStatusEnum mainStatusEnum = ReceiveGoodsMainEnum.MainStatusEnum.LISTING; ReceiveGoodsMainEnum.MainStatusEnum mainStatusEnum = ReceiveGoodsMainEnum.MainStatusEnum.LISTING;
//查询图书编号列表 //查询图书编号列表
@ -418,56 +482,81 @@ public class TReceiveGoodsMainServiceImpl extends ServiceImpl<TReceiveGoodsMainM
.eq(TReceiveGoodsBooks::getDelFlag, "0") .eq(TReceiveGoodsBooks::getDelFlag, "0")
.list() .list()
.stream().map(TReceiveGoodsBooks::getBookNumber).collect(Collectors.toSet()); .stream().map(TReceiveGoodsBooks::getBookNumber).collect(Collectors.toSet());
if (CollUtil.isNotEmpty(bookNumberList)) {
//修改图书去向 即之后样书室新建后进行分堆不会再查到老数据
bookGoWhereService.lambdaUpdate()
//签收后保存的需要手机端上架后才能修改上架状态,初始化数据可以修改
.set(TBookGoWhere::getWarehouseEntryFlag, "1")
.eq(TBookGoWhere::getType, "0")
.eq(TBookGoWhere::getDelFlag, "0")
.eq(TBookGoWhere::getWarehouseEntryFlag, "0")
.eq(TBookGoWhere::getCreateCorpId, corpId)
.in(TBookGoWhere::getBookNumber, bookNumberList)
.eq(TBookGoWhere::getOrderType, orderTypeEnum.getCode())
.update();
}
//查询是否具有送往版本馆及业务部的数据,有的话就创建收货单
Set<String> 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();
}
if (StrUtil.equals(ReceiveGoodsMainEnum.OrderTypeEnum.VERSION_LIBRARY.getDescribe(),sh)){
orderType=ReceiveGoodsMainEnum.OrderTypeEnum.VERSION_LIBRARY.getCode();
}
if (StrUtil.isBlank(orderType)){
continue;
}
//生成版本馆/业务部收货单 //生成版本馆/业务部收货单
ReceiveGoodsMainDto.NewReceiptParam newReceiptParam=new ReceiveGoodsMainDto.NewReceiptParam(); ReceiveGoodsMainDto.NewReceiptParam newReceiptParam = new ReceiveGoodsMainDto.NewReceiptParam();
newReceiptParam.setOrderType(orderType);
newReceiptParam.setReceiptNumber(tReceiveGoodsMain.getReceiptNumber()); newReceiptParam.setReceiptNumber(tReceiveGoodsMain.getReceiptNumber());
newReceiptParam.setOrderType(param.getOrderType());
newReceiptParam.setPackageQuantity(tReceiveGoodsMain.getPackageQuantity()); newReceiptParam.setPackageQuantity(tReceiveGoodsMain.getPackageQuantity());
newReceiptParam.setDeliveryParty(tReceiveGoodsMain.getDeliveryParty()); newReceiptParam.setDeliveryParty(tReceiveGoodsMain.getDeliveryParty());
newReceiptParam.setReceiveTime(tReceiveGoodsMain.getReceiveTime()); newReceiptParam.setReceiveTime(tReceiveGoodsMain.getReceiveTime());
List<ReceiveGoodsMainDto.BunchingInfo> bunchingInfoList=new ArrayList<>(); newReceiptParam.setSaveType("1");
newReceiptParam.setPackageSituation(tReceiveGoodsMain.getPackageSituation());
List<ReceiveGoodsMainDto.BunchingInfo> bunchingInfoList = new ArrayList<>();
//查询图书编号 //查询图书编号
Set<String> queryBookInfoNumberList = bookGoWhereService.lambdaQuery() Set<String> queryBookInfoNumberList = bookGoWhereService.lambdaQuery()
.eq(TBookGoWhere::getType, "0") .eq(TBookGoWhere::getType, "0")
.eq(TBookGoWhere::getDelFlag, "0") .eq(TBookGoWhere::getDelFlag, "0")
.eq(TBookGoWhere::getWarehouseEntryFlag, "0") .eq(TBookGoWhere::getWarehouseEntryFlag, "0")
// .in(TBookGoWhere::getTargetName, Arrays.asList(ReceiveGoodsMainEnum.OrderTypeEnum.BUSINESS_DEPARTMENT.getDescribe(), ReceiveGoodsMainEnum.OrderTypeEnum.VERSION_LIBRARY.getDescribe()))
.in(TBookGoWhere::getBookNumber, bookNumberList) .in(TBookGoWhere::getBookNumber, bookNumberList)
.eq(TBookGoWhere::getCreateCorpId, UserProvider.getUser().getOrganizeId()) .eq(TBookGoWhere::getCreateCorpId, corpId)
.eq(TBookGoWhere::getOrderType, orderTypeEnum.getCode()) .eq(TBookGoWhere::getOrderType, orderType)
.list().stream().map(TBookGoWhere::getBookNumber).collect(Collectors.toSet()); .list().stream().map(TBookGoWhere::getBookNumber).collect(Collectors.toSet());
List<TLibrary> libraryList = libraryService.lambdaQuery() List<TLibrary> libraryList = libraryService.getListByBookNumberList(queryBookInfoNumberList);
.in(TLibrary::getBookNumber, queryBookInfoNumberList)
.list();
//创建收货单 //创建收货单
if (CollUtil.isNotEmpty(libraryList)){ if (CollUtil.isNotEmpty(libraryList)) {
for (TLibrary tLibrary : libraryList) { for (TLibrary tLibrary : libraryList) {
bunchingInfoList.add(BeanUtil.copyProperties(tLibrary,ReceiveGoodsMainDto.BunchingInfo.class)); bunchingInfoList.add(BeanUtil.copyProperties(tLibrary, ReceiveGoodsMainDto.BunchingInfo.class));
} }
newReceiptParam.setBunchingInfoList(bunchingInfoList); newReceiptParam.setBunchingInfoList(bunchingInfoList);
this.newReceipt(newReceiptParam); this.newReceipt(newReceiptParam);
} }
}
if (CollUtil.isNotEmpty(bookNumberList)) {
//修改图书去向 即之后样书室新建后进行分堆不会再查到老数据
bookGoWhereService.lambdaUpdate()
//签收后保存的需要手机端上架后才能修改上架状态,初始化数据可以修改
.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(); ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
DictionaryDataEntity data = dictionaryDataApi.getByTypeDataCode("SampleLibrary", "xtaddr").getData(); DictionaryDataEntity data = dictionaryDataApi.getByTypeDataCode("SampleLibrary", "xtaddr").getData();
String systemUrl="http://61.169.37.106:9172/api/file/Image/preview/"; String systemUrl = "http://61.169.37.106:9172/api/file/Image/preview/";
if (null!=data){ if (null != data) {
systemUrl=data.getDescription(); systemUrl = data.getDescription();
} }
QrCodeUtil.generate(systemUrl, 1000, 1000,"", byteArrayOutputStream); QrCodeUtil.generate(systemUrl, 1000, 1000, "", byteArrayOutputStream);
MockMultipartFile mockMultipartFile = new MockMultipartFile("上架.png", "上架.png", "text/plain", byteArrayOutputStream.toByteArray()); MockMultipartFile mockMultipartFile = new MockMultipartFile("上架.png", "上架.png", "text/plain", byteArrayOutputStream.toByteArray());
FileInfo preview = fileUploadApi.uploadFile(mockMultipartFile, fileApi.getPath(FileTypeConstant.BIVISUALPATH), "preview", "上架.png"); FileInfo preview = fileUploadApi.uploadFile(mockMultipartFile, fileApi.getPath(FileTypeConstant.BIVISUALPATH), "preview", "上架.png");

1
jnpf-library/jnpf-library-biz/src/main/java/jnpf/service/impl/TSelectionOrderingMainServiceImpl.java

@ -349,6 +349,7 @@ public class TSelectionOrderingMainServiceImpl extends ServiceImpl<TSelectionOrd
bookGoWhere.setShouldSend(bookTurnoverInfo.getNumber()); bookGoWhere.setShouldSend(bookTurnoverInfo.getNumber());
bookGoWhere.setActualSend(bookTurnoverInfo.getNumber()); bookGoWhere.setActualSend(bookTurnoverInfo.getNumber());
bookGoWhere.setUpdateBy(user.getUserId()); bookGoWhere.setUpdateBy(user.getUserId());
bookGoWhere.setOrderType(param.getOrderType());
bookGoWhere.setType("0"); bookGoWhere.setType("0");
bookGoWhere.setUpdateTime(LocalDateTime.now()); bookGoWhere.setUpdateTime(LocalDateTime.now());
bookGoWhere.setUpdateName(user.getUserName()); bookGoWhere.setUpdateName(user.getUserName());

3
jnpf-library/jnpf-library-biz/src/main/resources/mapper/TBookGoWhereMapper.xml

@ -130,7 +130,8 @@ ID,book_number,target_name,should_send,actual_send,warehouse_entry_flag,del_flag
select <include refid="Base_Column_List"/> select <include refid="Base_Column_List"/>
from t_book_go_where from t_book_go_where
where relation_id = #{id} where relation_id = #{id}
and warehouse_entry_flag = '1' and book_number = #{bookNumber}
and warehouse_entry_flag = '0'
and del_flag = '0' and del_flag = '0'
and type = '1' and type = '1'
</select> </select>

37
jnpf-library/jnpf-library-controller/src/main/java/jnpf/controller/ReceiveGoodsMainController.java

@ -1,6 +1,7 @@
package jnpf.controller; package jnpf.controller;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam; import io.swagger.annotations.ApiParam;
@ -8,12 +9,17 @@ import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import jnpf.base.ActionResult; import jnpf.base.ActionResult;
import jnpf.base.Page; import jnpf.base.Page;
import jnpf.constant.MsgCode;
import jnpf.entity.TLibrary;
import jnpf.exception.DataException;
import jnpf.model.dto.ReceiveGoodsMainDto; import jnpf.model.dto.ReceiveGoodsMainDto;
import jnpf.service.ILibraryService;
import jnpf.service.TReceiveGoodsMainService; import jnpf.service.TReceiveGoodsMainService;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.List; import java.util.List;
import java.util.Optional;
@RestController @RestController
@Api("收货管理") @Api("收货管理")
@ -22,12 +28,13 @@ import java.util.List;
@AllArgsConstructor @AllArgsConstructor
public class ReceiveGoodsMainController { public class ReceiveGoodsMainController {
private final TReceiveGoodsMainService tReceiveGoodsMainService; private final TReceiveGoodsMainService tReceiveGoodsMainService;
private final ILibraryService libraryService;
@Operation(summary = "收货单新建") @Operation(summary = "收货单新建")
@PostMapping("newReceipt") @PostMapping("newReceipt")
public ActionResult<String> newReceipt(@RequestBody ReceiveGoodsMainDto.NewReceiptParam param) { public ActionResult<String> newReceipt(@RequestBody ReceiveGoodsMainDto.NewReceiptParam param) {
return ActionResult.success(tReceiveGoodsMainService.newReceipt(param)); return ActionResult.success(MsgCode.SU000.get(),tReceiveGoodsMainService.newReceipt(param));
} }
@ -39,7 +46,7 @@ public class ReceiveGoodsMainController {
@Operation(summary = "根据id查询收货详情") @Operation(summary = "根据id查询收货详情")
@GetMapping("getInfoById") @GetMapping("getInfoById")
public ActionResult<ReceiveGoodsMainDto.TReceiveGoodsMainEntity> getInfoById(@ApiParam("收货单id")@RequestParam String id) { public ActionResult<ReceiveGoodsMainDto.TReceiveGoodsMainEntity> getInfoById(@ApiParam("收货单id") @RequestParam String id) {
return ActionResult.success(tReceiveGoodsMainService.getInfoById(id)); return ActionResult.success(tReceiveGoodsMainService.getInfoById(id));
} }
@ -51,10 +58,12 @@ public class ReceiveGoodsMainController {
} }
@Operation(summary = "通过图书编号查询图书基本信息-(拆包扫图书条码)") @Operation(summary = "通过图书编号查询图书基本信息-(拆包扫图书条码)")
@GetMapping("getBunchingInfoByBookNumber") @GetMapping("getBunchingInfoByBookNumber")
public ActionResult<ReceiveGoodsMainDto.BunchingInfo> getBunchingInfoByBookNumber(@ApiParam("图书编号")@RequestParam String bookNumber) { public ActionResult<ReceiveGoodsMainDto.BunchingInfo> getBunchingInfoByBookNumber(@ApiParam("图书编号") @RequestParam String bookNumber) {
if (StrUtil.isBlank(bookNumber)) {
throw new DataException("请输入图书编号");
}
return ActionResult.success(tReceiveGoodsMainService.getBunchingInfoByBookNumber(bookNumber)); return ActionResult.success(tReceiveGoodsMainService.getBunchingInfoByBookNumber(bookNumber));
} }
@ -62,23 +71,18 @@ public class ReceiveGoodsMainController {
@Operation(summary = "删除收货单") @Operation(summary = "删除收货单")
@PostMapping("/delete") @PostMapping("/delete")
public ActionResult<Void> delete(@RequestParam String id) { public ActionResult<Void> delete(@RequestParam String id) {
tReceiveGoodsMainService.delete(id,true); tReceiveGoodsMainService.delete(id, true);
return ActionResult.success(); return ActionResult.success();
} }
// 分堆 // 分堆
@Operation(summary = "根据选书id查询分堆信息(根据验收类型:1-业务部 2-版本馆 3-样书室)") @Operation(summary = "根据选书id查询分堆信息(根据验收类型:1-业务部 2-版本馆 3-样书室)")
@GetMapping("getStackingInformation") @GetMapping("getStackingInformation")
public ActionResult<List<ReceiveGoodsMainDto.TBookGoWhereEntity>> getStackingInformation(@ApiParam("选书id")@RequestParam Long id,@ApiParam("验收类型:1-业务部 2-版本馆 3-样书室")@RequestParam String orderType) { public ActionResult<List<ReceiveGoodsMainDto.TBookGoWhereEntity>> getStackingInformation(@ApiParam("选书id") @RequestParam Long id, @ApiParam("验收类型:1-业务部 2-版本馆 3-样书室") @RequestParam String orderType) {
return ActionResult.success(tReceiveGoodsMainService.getStackingInformation(id,orderType)); return ActionResult.success(tReceiveGoodsMainService.getStackingInformation(id, orderType));
} }
@ -97,4 +101,13 @@ public class ReceiveGoodsMainController {
return ActionResult.success(); return ActionResult.success();
} }
//h5上架使用
} }

2
jnpf-library/jnpf-library-entity/src/main/java/jnpf/enump/ReceiveGoodsMainEnum.java

@ -38,7 +38,7 @@ public class ReceiveGoodsMainEnum {
//签收类型:1-业务部 2-版本馆 3-样书室 4-重点书 //签收类型:1-业务部 2-版本馆 3-样书室 4-重点书
@Getter @Getter
public enum OrderTypeEnum { public enum OrderTypeEnum {
BUSINESS_DEPARTMENT("1", "业务部"), BUSINESS_DEPARTMENT("1", "锐雯家"),
VERSION_LIBRARY("2", "版本馆"), VERSION_LIBRARY("2", "版本馆"),
SAMPLE_BOOKSTORE("3", "样书室"); SAMPLE_BOOKSTORE("3", "样书室");

2
jnpf-library/jnpf-library-entity/src/main/java/jnpf/model/dto/ReceiveGoodsMainDto.java

@ -123,7 +123,7 @@ public class ReceiveGoodsMainDto {
private String orderType; private String orderType;
@ApiModelProperty("验收类型:1-业务部 2-版本馆 3-样书室") @ApiModelProperty("分堆信息")
private List<TBookGoWhere> bookGoWhereList; private List<TBookGoWhere> bookGoWhereList;
} }

Loading…
Cancel
Save