Commit 276f0c7d by 田超

Merge branch 'feature/1003939' into 'master'

feat: [1003939] ERP查询RAYS书刊页新增图书ID信息导出

See merge request rays/pcloud-book!1085
parents 07644e5d 7c1926a4
...@@ -308,4 +308,9 @@ public interface BookAdviserBiz { ...@@ -308,4 +308,9 @@ public interface BookAdviserBiz {
* @return * @return
*/ */
BookDto getBookDetail4Buy(Long bookId, Long adviserId, Long channelId); BookDto getBookDetail4Buy(Long bookId, Long adviserId, Long channelId);
/**
* 导出编辑书刊列表(ERP项目用)
*/
Map<String,Object> exportAdviserBook4Erp(String isbn, String uniqueNumber, String adviserName);
} }
...@@ -113,6 +113,7 @@ import java.util.List; ...@@ -113,6 +113,7 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects; import java.util.Objects;
import java.util.Set; import java.util.Set;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future; import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
...@@ -1978,4 +1979,93 @@ public class BookAdviserBizImpl implements BookAdviserBiz { ...@@ -1978,4 +1979,93 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
} }
return answerList; return answerList;
} }
/**
* 导出编辑书刊列表(ERP项目用)
*/
@Override
public Map<String, Object> exportAdviserBook4Erp(String isbn, String uniqueNumber, String adviserName) {
if(StringUtils.isBlank(isbn) && StringUtils.isBlank(uniqueNumber) && StringUtils.isBlank(adviserName)){
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "请筛选后再下载!");
}
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("isbn", isbn);
paramMap.put("uniqueNumber", uniqueNumber);
if(!StringUtil.isEmpty(adviserName)) {
List<Long> adviserIds = adviserConsr.getAdviserIdsByName(adviserName);
if(CollectionUtils.isEmpty(adviserIds)) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "当前列表为空,请重新筛选再下载!");
}
paramMap.put("adviserIds", adviserIds);
}
List<ErpAdviserBookVO> bookVOS = bookAdviserDao.listAdviserBook4Erp(paramMap);
if(ListUtils.isEmpty(bookVOS)){
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "当前列表为空,请重新筛选再下载!");
}
List<CompletableFuture<Boolean>> futures = new ArrayList();
for (int i = 0; i <= bookVOS.size() / 100; i++) {
int beginIndex = i * 100;
int endIndex = beginIndex + 100;
if (i == (bookVOS.size() - 1)/100){
endIndex = bookVOS.size();
}
List<ErpAdviserBookVO> bookVOList = bookVOS.subList(beginIndex, endIndex);
futures.add(CompletableFuture.supplyAsync(() -> {
this.setBookInfo4Erp(bookVOList);
return true;
}));
}
CompletableFuture.allOf(futures.toArray(new CompletableFuture[futures.size()])).join();
// 标题
String excelTitle ="关联rays书刊信息导出";
// 列名称
String[] rowsName = {"书名", "书号", "序号", "编辑名称", "所属出版社", "图书ID"};
// 数据列
List<Object[]> dataList = new ArrayList<>();
bookVOS.forEach(e->{
Object[] objects = new Object[]{
Objects.nonNull(e.getBookName()) ? e.getBookName() : "--",
Objects.nonNull(e.getIsbn()) ? e.getIsbn() : "--",
Objects.nonNull(e.getSerialNumber()) ? e.getSerialNumber() : "--",
Objects.nonNull(e.getAdviserName()) ? e.getAdviserName() : "--",
Objects.nonNull(e.getAgentName()) ? e.getAgentName() : "--",
Objects.nonNull(e.getBookId()) ? String.valueOf(e.getBookId()) : "--"
};
dataList.add(objects);
});
String url = exportConsr.exportExcel(excelTitle, rowsName, dataList);
Map<String,Object> result=new HashMap<>();
result.put("fileUrl", url);
return result;
}
private void setBookInfo4Erp(List<ErpAdviserBookVO> bookVOS) {
List<Long> adviserIds = bookVOS.stream().filter(s -> s.getAdviserId() != null).map(ErpAdviserBookVO::getAdviserId).distinct().collect(Collectors.toList());
List<Long> channelIds = bookVOS.stream().filter(s -> s.getChannelId() != null).map(ErpAdviserBookVO::getChannelId).distinct().collect(Collectors.toList());
List<Long> bookIds = bookVOS.stream().filter(s -> s.getBookId() != null).map(ErpAdviserBookVO::getBookId).distinct().collect(Collectors.toList());
Map<Long, UserLogin> userLoginInfoMap = adviserConsr.getUserLoginInfoList(adviserIds);
Map<Long, AdviserBaseInfoDto> adviserAgentMap = adviserConsr.getAdviserId2AdviserInfoDtoMap(adviserIds);
Map<Long, String> channelNameMap = channelConsr.getNamesByIdList(channelIds);
List<Long> list = bookFundBiz.listHaveFundBooks(bookIds);
for (ErpAdviserBookVO bookVO : bookVOS) {
Long adviserId = bookVO.getAdviserId();
if (adviserId != null && MapUtils.isNotEmpty(userLoginInfoMap) && userLoginInfoMap.containsKey(adviserId)) {
UserLogin userLogin = userLoginInfoMap.get(adviserId);
bookVO.setAdviserAccount(userLogin != null ? userLogin.getUserName() : null);
bookVO.setAdviserPwd(userLogin != null ? userLogin.getCurrentPassword() : null);
}
if (adviserId != null && MapUtils.isNotEmpty(adviserAgentMap) && adviserAgentMap.containsKey(adviserId)) {
AdviserBaseInfoDto adviserBaseInfoDto = adviserAgentMap.get(adviserId);
bookVO.setAgentName(null != adviserBaseInfoDto ? adviserBaseInfoDto.getAgentName() : "--");
bookVO.setAdviserName(null != adviserBaseInfoDto ? adviserBaseInfoDto.getPartyName() : "--");
}
if (bookVO.getChannelId() != null && MapUtils.isNotEmpty(channelNameMap) && channelNameMap.containsKey(bookVO.getChannelId())) {
bookVO.setChannelName(channelNameMap.get(bookVO.getChannelId()));
}
bookVO.setIsFundSupport(false);
if (!ListUtils.isEmpty(list) && list.contains(bookVO.getBookId())) {
bookVO.setIsFundSupport(true);
}
}
}
} }
...@@ -14,6 +14,7 @@ import com.pcloud.book.book.dto.ERPPublishNumDTO; ...@@ -14,6 +14,7 @@ import com.pcloud.book.book.dto.ERPPublishNumDTO;
import com.pcloud.book.book.dto.ErpBookInfoDTO; import com.pcloud.book.book.dto.ErpBookInfoDTO;
import com.pcloud.book.book.entity.BookAdviser; import com.pcloud.book.book.entity.BookAdviser;
import com.pcloud.book.book.vo.AgentBookStatsDetailVO; import com.pcloud.book.book.vo.AgentBookStatsDetailVO;
import com.pcloud.book.book.vo.ErpAdviserBookVO;
import com.pcloud.common.core.dao.BaseDao; import com.pcloud.common.core.dao.BaseDao;
import java.util.List; import java.util.List;
...@@ -255,6 +256,8 @@ public interface BookAdviserDao extends BaseDao<BookAdviser> { ...@@ -255,6 +256,8 @@ public interface BookAdviserDao extends BaseDao<BookAdviser> {
*/ */
int updateBookBySecondTempletId(Long parentId, Long originTempletId,Long secondTempletId); int updateBookBySecondTempletId(Long parentId, Long originTempletId,Long secondTempletId);
List<ErpAdviserBookVO> listAdviserBook4Erp(Map<String,Object> map);
/** /**
* 设置书刊是否已下印状态 * 设置书刊是否已下印状态
* @param bookAdviser 图书编辑关联关系 * @param bookAdviser 图书编辑关联关系
......
...@@ -19,6 +19,7 @@ import com.pcloud.book.book.dto.ERPPublishNumDTO; ...@@ -19,6 +19,7 @@ import com.pcloud.book.book.dto.ERPPublishNumDTO;
import com.pcloud.book.book.dto.ErpBookInfoDTO; import com.pcloud.book.book.dto.ErpBookInfoDTO;
import com.pcloud.book.book.entity.BookAdviser; import com.pcloud.book.book.entity.BookAdviser;
import com.pcloud.book.book.vo.AgentBookStatsDetailVO; import com.pcloud.book.book.vo.AgentBookStatsDetailVO;
import com.pcloud.book.book.vo.ErpAdviserBookVO;
import com.pcloud.common.core.dao.BaseDaoImpl; import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
...@@ -256,7 +257,12 @@ public class BookAdviserDaoImpl extends BaseDaoImpl<BookAdviser> implements Book ...@@ -256,7 +257,12 @@ public class BookAdviserDaoImpl extends BaseDaoImpl<BookAdviser> implements Book
return getSqlSession().update(getStatement("updateBookBySecondTempletId"),map); return getSqlSession().update(getStatement("updateBookBySecondTempletId"),map);
} }
/** @Override
public List<ErpAdviserBookVO> listAdviserBook4Erp(Map<String, Object> map) {
return getSqlSession().selectList(getStatement("listAdviserBook4Erp"),map);
}
/**
* 设置书刊是否已下印状态 * 设置书刊是否已下印状态
*/ */
@Override @Override
......
...@@ -204,6 +204,18 @@ public class BookAdviserFacadeImpl implements BookAdviserFacade { ...@@ -204,6 +204,18 @@ public class BookAdviserFacadeImpl implements BookAdviserFacade {
return new ResponseDto<>(bookAdviserBiz.listAdviserBook4Erp(isbn, uniqueNumber, adviserName, currentPage, numPerPage)); return new ResponseDto<>(bookAdviserBiz.listAdviserBook4Erp(isbn, uniqueNumber, adviserName, currentPage, numPerPage));
} }
/**
* 导出编辑书刊列表(ERP项目用)
*/
@RequestMapping(value = "exportAdviserBook4Erp", method = RequestMethod.GET)
public ResponseDto<?> exportAdviserBook4Erp(@RequestHeader("token") String token,
@RequestParam(value = "isbn", required = false) String isbn,
@RequestParam(value = "uniqueNumber", required = false) String uniqueNumber,
@RequestParam(value = "adviserName", required = false) String adviserName)
throws PermissionException, JsonParseException, BizException {
return new ResponseDto<>(bookAdviserBiz.exportAdviserBook4Erp(isbn, uniqueNumber, adviserName));
}
@Override @Override
@RequestMapping(value = "listAdviserBook4Pcloud", method = RequestMethod.GET) @RequestMapping(value = "listAdviserBook4Pcloud", method = RequestMethod.GET)
public ResponseDto<PageBeanNew<PcloudAdviserBookVO>> listAdviserBook4Pcloud(@RequestHeader("token") String token, public ResponseDto<PageBeanNew<PcloudAdviserBookVO>> listAdviserBook4Pcloud(@RequestHeader("token") String token,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment