From e477dfd3c2959e9b0a2ab64a10e2e0723dfbff92 Mon Sep 17 00:00:00 2001 From: xia Date: Wed, 27 Jul 2022 16:41:59 +0800 Subject: [PATCH] =?UTF-8?q?1.=E6=9B=B4=E6=96=B0bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../archives/controller/BorrowController.java | 27 ++++++++-- .../controller/StorageController.java | 8 +++ .../domain/vo/BorrowBillDetailsVO.java | 3 ++ .../archives/domain/vo/StorageDetailesVO.java | 18 +++++++ .../repository/ArchivesSummaryRepository.java | 9 ++++ .../repository/BorrowArchivesRepository.java | 13 +++-- .../repository/BorrowerRepository.java | 7 ++- .../StorageDetailsLogRepository.java | 2 +- .../archives/service/ArchivesCaseService.java | 2 + .../archives/service/ArchivesService.java | 2 + .../archives/service/BorrowService.java | 7 +-- .../service/impl/ArchivesCaseServiceImpl.java | 9 ++++ .../service/impl/ArchivesServiceImpl.java | 5 ++ .../service/impl/BorrowServiceImpl.java | 13 +++-- .../storeroom/modules/common/ExcelUtil.java | 49 +++++++++++++++++++ 15 files changed, 155 insertions(+), 19 deletions(-) create mode 100644 archives/src/main/java/com/storeroom/modules/archives/domain/vo/StorageDetailesVO.java diff --git a/archives/src/main/java/com/storeroom/modules/archives/controller/BorrowController.java b/archives/src/main/java/com/storeroom/modules/archives/controller/BorrowController.java index 93eb623..0ef8af7 100644 --- a/archives/src/main/java/com/storeroom/modules/archives/controller/BorrowController.java +++ b/archives/src/main/java/com/storeroom/modules/archives/controller/BorrowController.java @@ -1,10 +1,13 @@ package com.storeroom.modules.archives.controller; +import com.storeroom.annotaion.rest.AnonymousGetMapping; import com.storeroom.modules.archives.domain.Borrower; +import com.storeroom.modules.archives.domain.vo.BorrowBillDetailsVO; import com.storeroom.modules.archives.service.ArchivesTagService; import com.storeroom.modules.archives.service.BorrowService; import com.storeroom.modules.archives.service.dto.BorrowerDTO; import com.storeroom.modules.archives.service.dto.RegisterBorrowDTO; +import com.storeroom.modules.common.ExcelUtil; import com.storeroom.utils.ApiResponse; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -13,8 +16,10 @@ import org.springframework.data.domain.Pageable; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletResponse; import java.sql.Time; import java.sql.Timestamp; +import java.util.ArrayList; import java.util.List; @RestController @@ -181,9 +186,9 @@ public class BorrowController { @GetMapping("/initBorrowLog") public ApiResponse initBorrowLog( String orderNo,String borrowerName,String phone,String archiveNo,String folderLocationDetails, - String caseName,String barcode,String tid,Integer borrowType,Pageable page + String caseName,String barcode,String tid,Integer borrowType,String maintitle,Pageable page ){ - return ApiResponse.success(borrowService.initBorrowLog(orderNo,borrowerName,phone,archiveNo,folderLocationDetails,caseName,barcode,tid,borrowType,page)); + return ApiResponse.success(borrowService.initBorrowLog(orderNo,borrowerName,phone,archiveNo,folderLocationDetails,caseName,barcode,tid,borrowType,maintitle,page)); } @ApiOperation("借阅者列表") @@ -207,7 +212,23 @@ public class BorrowController { public ApiResponse deleteBorrower( @Validated @RequestBody List borrowersId ){ - return ApiResponse.success(borrowService.deleteBorrower(borrowersId)); + return ApiResponse.success(borrowService.delBorrower(borrowersId)); + } + + @ApiOperation("导出借阅信息") + @AnonymousGetMapping("/exportBorrow") + @ResponseBody + public void exportBorrow( + HttpServletResponse response, + @RequestParam("orderNos") List orderNos + ){ + List bills = new ArrayList<>(); + for(String orderNo:orderNos){ + bills.add(borrowService.initBillDetailsByOrderNo(orderNo)); + } + ExcelUtil.createBorrowerExcel("测试",bills); + + } } diff --git a/archives/src/main/java/com/storeroom/modules/archives/controller/StorageController.java b/archives/src/main/java/com/storeroom/modules/archives/controller/StorageController.java index 4320314..9598f8e 100644 --- a/archives/src/main/java/com/storeroom/modules/archives/controller/StorageController.java +++ b/archives/src/main/java/com/storeroom/modules/archives/controller/StorageController.java @@ -306,6 +306,14 @@ public class StorageController { } @ApiOperation("出入库详情") + @GetMapping("/initStorageDetailes") + public ApiResponse initStorageDetailes( + String caseId + ){ + return ApiResponse.success(caseService.initStorageDetailes(caseId)); + } + + @ApiOperation("出入库记录详情") @GetMapping("/initStorageLogDetailes") public ApiResponse initStorageLogDetailes( Integer logId diff --git a/archives/src/main/java/com/storeroom/modules/archives/domain/vo/BorrowBillDetailsVO.java b/archives/src/main/java/com/storeroom/modules/archives/domain/vo/BorrowBillDetailsVO.java index 1dac83a..071a56f 100644 --- a/archives/src/main/java/com/storeroom/modules/archives/domain/vo/BorrowBillDetailsVO.java +++ b/archives/src/main/java/com/storeroom/modules/archives/domain/vo/BorrowBillDetailsVO.java @@ -3,6 +3,7 @@ package com.storeroom.modules.archives.domain.vo; import com.alibaba.fastjson.annotation.JSONField; import com.fasterxml.jackson.annotation.JsonProperty; import com.storeroom.modules.archives.domain.BorrowArchives; +import com.storeroom.modules.archives.domain.Borrower; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; @@ -51,6 +52,8 @@ public class BorrowBillDetailsVO { @JsonProperty("create_time") private Timestamp createTime; + private Borrower borrower; + @JSONField(name="borrowArchives") @JsonProperty("borrowArchives") private List borrowArchives; diff --git a/archives/src/main/java/com/storeroom/modules/archives/domain/vo/StorageDetailesVO.java b/archives/src/main/java/com/storeroom/modules/archives/domain/vo/StorageDetailesVO.java new file mode 100644 index 0000000..6aa7600 --- /dev/null +++ b/archives/src/main/java/com/storeroom/modules/archives/domain/vo/StorageDetailesVO.java @@ -0,0 +1,18 @@ +package com.storeroom.modules.archives.domain.vo; + +import com.storeroom.modules.archives.domain.ArchivesCase; +import com.storeroom.modules.archives.domain.ArchivesSummary; +import com.storeroom.modules.archives.service.dto.CaseDTO; +import lombok.Getter; +import lombok.Setter; + +import java.util.List; + +@Getter +@Setter +public class StorageDetailesVO { + + private ArchivesCase archivesCase; + private List archivesSummaries; + +} diff --git a/archives/src/main/java/com/storeroom/modules/archives/repository/ArchivesSummaryRepository.java b/archives/src/main/java/com/storeroom/modules/archives/repository/ArchivesSummaryRepository.java index e4da2dd..8e84984 100644 --- a/archives/src/main/java/com/storeroom/modules/archives/repository/ArchivesSummaryRepository.java +++ b/archives/src/main/java/com/storeroom/modules/archives/repository/ArchivesSummaryRepository.java @@ -61,4 +61,13 @@ public interface ArchivesSummaryRepository extends JpaRepository isExistBorrow(List archivesId); + //根据盒获取档案信息 + @Query(nativeQuery = true, + value = "select * from archives_summary asy " + + "inner join archives_case_cartoning acc on asy.archives_id = acc.parent_id " + + "where acc.case_id = ?1 ") + List findByCaseIds(String caseId); + + ArchivesSummary findByTagNo(String tid); + } diff --git a/archives/src/main/java/com/storeroom/modules/archives/repository/BorrowArchivesRepository.java b/archives/src/main/java/com/storeroom/modules/archives/repository/BorrowArchivesRepository.java index 2258214..cbc8d09 100644 --- a/archives/src/main/java/com/storeroom/modules/archives/repository/BorrowArchivesRepository.java +++ b/archives/src/main/java/com/storeroom/modules/archives/repository/BorrowArchivesRepository.java @@ -71,10 +71,10 @@ public interface BorrowArchivesRepository extends JpaRepository=DATE(now()) then '待归还' else '未知' end as borrowType,bbl.create_by as createBy " + + "when bbl.borrow_end>=DATE(now()) then '待归还' else '未知' end as borrowType,bbl.create_by as createBy,bbl.create_time as createTime " + "from borrow_archives ba " + "inner join borrow_bill_archives bba on ba.id = bba.ba_id " + "inner join borrow_bill bbl on bba.bill_id = bbl.id " + @@ -106,10 +106,12 @@ public interface BorrowArchivesRepository extends JpaRepository> initBorrowLog(String orderNo, String borrowerName, String phone, String archiveNo,String folderLocationDetails, - String caseName, String barcode, String tid,Integer borrowType, Pageable page); + String caseName, String barcode, String tid,Integer borrowType,String maintitle, Pageable page); } diff --git a/archives/src/main/java/com/storeroom/modules/archives/repository/BorrowerRepository.java b/archives/src/main/java/com/storeroom/modules/archives/repository/BorrowerRepository.java index 522315c..4b071e1 100644 --- a/archives/src/main/java/com/storeroom/modules/archives/repository/BorrowerRepository.java +++ b/archives/src/main/java/com/storeroom/modules/archives/repository/BorrowerRepository.java @@ -11,8 +11,11 @@ import java.util.List; public interface BorrowerRepository extends JpaRepository { + @Query("from Borrower where id = ?1 ") + Borrower findByBorrowerId(String borrowerId); + @Query(nativeQuery = true, - value = "select * from borrower where borrower_name like ?1 or borrower_name_py like ?1 or phone like ?1 ") + value = "select * from borrower where is_delete = false and (borrower_name like ?1 or borrower_name_py like ?1 or phone like ?1) ") List findBorrowerByQuery(String query); @Query("from Borrower where borrowerName = ?1 and phone = ?2 ") @@ -26,6 +29,6 @@ public interface BorrowerRepository extends JpaRepository { @Modifying @Query("update Borrower set isDelete = true where id in ?1 ") - void deleteAllByIds(List borrowerIds); + void delAllByIds(List borrowerIds); } diff --git a/archives/src/main/java/com/storeroom/modules/archives/repository/StorageDetailsLogRepository.java b/archives/src/main/java/com/storeroom/modules/archives/repository/StorageDetailsLogRepository.java index 4a383ee..9becaff 100644 --- a/archives/src/main/java/com/storeroom/modules/archives/repository/StorageDetailsLogRepository.java +++ b/archives/src/main/java/com/storeroom/modules/archives/repository/StorageDetailsLogRepository.java @@ -17,7 +17,7 @@ public interface StorageDetailsLogRepository extends JpaRepository> inCaseArchives(String caseIds); diff --git a/archives/src/main/java/com/storeroom/modules/archives/service/ArchivesCaseService.java b/archives/src/main/java/com/storeroom/modules/archives/service/ArchivesCaseService.java index dcbc731..ef04d42 100644 --- a/archives/src/main/java/com/storeroom/modules/archives/service/ArchivesCaseService.java +++ b/archives/src/main/java/com/storeroom/modules/archives/service/ArchivesCaseService.java @@ -72,6 +72,8 @@ public interface ArchivesCaseService { //出入库记录 Object initStorageLogList(Integer storageType, String caseName,String tid,String barcode, Pageable page); //出入库详情 + Object initStorageDetailes(String caseId); + //出入库记录详情 Object initStorageLogDetailes(Integer logId); //根据id集合获取出入库列表 List initStorageLogList(List logs); diff --git a/archives/src/main/java/com/storeroom/modules/archives/service/ArchivesService.java b/archives/src/main/java/com/storeroom/modules/archives/service/ArchivesService.java index 1f33c49..6aa6382 100644 --- a/archives/src/main/java/com/storeroom/modules/archives/service/ArchivesService.java +++ b/archives/src/main/java/com/storeroom/modules/archives/service/ArchivesService.java @@ -50,4 +50,6 @@ public interface ArchivesService { String getcategoryAllParentsId(String categoryId); //根据层架位id判断是否被占用 boolean isShelfOccupy(String shelfId); + //根据标签id获取档案基本信息 + ArchivesSummary findArchivesByTid(String tid); } diff --git a/archives/src/main/java/com/storeroom/modules/archives/service/BorrowService.java b/archives/src/main/java/com/storeroom/modules/archives/service/BorrowService.java index 8a13ed4..fff1e9b 100644 --- a/archives/src/main/java/com/storeroom/modules/archives/service/BorrowService.java +++ b/archives/src/main/java/com/storeroom/modules/archives/service/BorrowService.java @@ -1,6 +1,7 @@ package com.storeroom.modules.archives.service; import com.storeroom.modules.archives.domain.Borrower; +import com.storeroom.modules.archives.domain.vo.BorrowBillDetailsVO; import com.storeroom.modules.archives.service.dto.BorrowerDTO; import org.springframework.data.domain.Pageable; @@ -27,7 +28,7 @@ public interface BorrowService { //借出确认列表 Object initWaitBorrowList(String billNo,String borrowerName,String phone,Pageable page); //根据单据获取详情信息 - Object initBillDetailsByOrderNo(String orderNo); + BorrowBillDetailsVO initBillDetailsByOrderNo(String orderNo); //根据单据号查询借阅档案信息 Object initArchivesByOrderNo(String orderNo); //重新登记 @@ -51,13 +52,13 @@ public interface BorrowService { Object archivesReturnConfirm(List rbIds); //初始化借还记录 Object initBorrowLog(String orderNo,String borrowerName,String phone,String archiveNo,String folderLocationDetails, - String caseName,String barcode,String tid,Integer borrowType,Pageable page); + String caseName,String barcode,String tid,Integer borrowType,String maintitle,Pageable page); //初始化借阅人列表 Object initBorrower(String query,String phone,Pageable page); //编辑借阅者信息 Object editBorrower(BorrowerDTO dto); //批量删除借阅者 - Object deleteBorrower(List borrowerIds); + Object delBorrower(List borrowerIds); } diff --git a/archives/src/main/java/com/storeroom/modules/archives/service/impl/ArchivesCaseServiceImpl.java b/archives/src/main/java/com/storeroom/modules/archives/service/impl/ArchivesCaseServiceImpl.java index 51be8ee..1a4e296 100644 --- a/archives/src/main/java/com/storeroom/modules/archives/service/impl/ArchivesCaseServiceImpl.java +++ b/archives/src/main/java/com/storeroom/modules/archives/service/impl/ArchivesCaseServiceImpl.java @@ -3,6 +3,7 @@ package com.storeroom.modules.archives.service.impl; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.TypeReference; import com.storeroom.modules.archives.domain.*; +import com.storeroom.modules.archives.domain.vo.StorageDetailesVO; import com.storeroom.modules.archives.repository.*; import com.storeroom.modules.archives.domain.ArchivesCase; import com.storeroom.modules.archives.service.ArchivesCaseService; @@ -688,6 +689,14 @@ public class ArchivesCaseServiceImpl implements ArchivesCaseService { return PageUtil.toPage(storageLogRepository.initStorageLogList(storageType,caseName,tid,barcode,page)); } + @Override + public Object initStorageDetailes(String caseId) { + StorageDetailesVO vo = new StorageDetailesVO(); + vo.setArchivesCase(caseRepository.findCaseById(caseId)); + vo.setArchivesSummaries(archivesSummaryRepository.findByCaseIds(caseId)); + return vo; + } + @Override public Object initStorageLogDetailes(Integer logId) { return storageDetailsLogRepository.findAllByLogId(logId); diff --git a/archives/src/main/java/com/storeroom/modules/archives/service/impl/ArchivesServiceImpl.java b/archives/src/main/java/com/storeroom/modules/archives/service/impl/ArchivesServiceImpl.java index 27059f8..92afbf9 100644 --- a/archives/src/main/java/com/storeroom/modules/archives/service/impl/ArchivesServiceImpl.java +++ b/archives/src/main/java/com/storeroom/modules/archives/service/impl/ArchivesServiceImpl.java @@ -933,4 +933,9 @@ public class ArchivesServiceImpl implements ArchivesService { Integer count = archivesSummaryRepository.countAllByShelfId(shelfId); return count==0 ? true:false; } + + @Override + public ArchivesSummary findArchivesByTid(String tid) { + return archivesSummaryRepository.findByTagNo(tid); + } } diff --git a/archives/src/main/java/com/storeroom/modules/archives/service/impl/BorrowServiceImpl.java b/archives/src/main/java/com/storeroom/modules/archives/service/impl/BorrowServiceImpl.java index 28525e8..572fbd9 100644 --- a/archives/src/main/java/com/storeroom/modules/archives/service/impl/BorrowServiceImpl.java +++ b/archives/src/main/java/com/storeroom/modules/archives/service/impl/BorrowServiceImpl.java @@ -114,10 +114,11 @@ public class BorrowServiceImpl implements BorrowService { } @Override - public Object initBillDetailsByOrderNo(String orderNo) { + public BorrowBillDetailsVO initBillDetailsByOrderNo(String orderNo) { BorrowBillDetailsVO vo = new BorrowBillDetailsVO(); BorrowBill bill = borrowBillRepository.findBillById(orderNo); BeanUtils.copyProperties(bill,vo); + vo.setBorrower(borrowerRepository.findByBorrowerId(bill.getBorrowerId())); vo.setBorrowArchives(borrowArchivesRepository.initArchivesByOrderNo(orderNo)); return vo; } @@ -225,7 +226,7 @@ public class BorrowServiceImpl implements BorrowService { } @Override - public Object initBorrowLog(String orderNo, String borrowerName, String phone, String archiveNo, String folderLocationDetails, String caseName, String barcode, String tid, Integer borrowType, Pageable page) { + public Object initBorrowLog(String orderNo, String borrowerName, String phone, String archiveNo, String folderLocationDetails, String caseName, String barcode, String tid, Integer borrowType,String maintitle, Pageable page) { orderNo = StringUtils.isEmpty(orderNo) ? null : "%"+ orderNo +"%"; borrowerName = StringUtils.isEmpty(borrowerName) ? null : "%"+ borrowerName +"%"; phone = StringUtils.isEmpty(phone) ? null : "%"+ phone +"%"; @@ -234,8 +235,9 @@ public class BorrowServiceImpl implements BorrowService { caseName = StringUtils.isEmpty(caseName) ? null : "%"+ caseName +"%"; barcode = StringUtils.isEmpty(barcode) ? null : "%"+ barcode +"%"; tid = StringUtils.isEmpty(tid) ? null : "%"+ tid +"%"; + maintitle = StringUtils.isEmpty(maintitle) ? null : "%"+ maintitle +"%"; return PageUtil.toPage(borrowArchivesRepository.initBorrowLog(orderNo,borrowerName,phone,archiveNo - ,folderLocationDetails,caseName,barcode,tid,borrowType,page)); + ,folderLocationDetails,caseName,barcode,tid,borrowType,maintitle,page)); } @Override @@ -259,6 +261,7 @@ public class BorrowServiceImpl implements BorrowService { } borrower.setBorrowerName(dto.getBorrowerName()); borrower.setBorrowerNamePy(ChinesePinyinUtil.getPinYinHeadChar(dto.getBorrowerName())); + borrower.setPhone(dto.getPhone()); borrower.setDepartment(dto.getDepartment()); borrower.setCardType(dto.getCardType()); borrower.setIdcard(dto.getIdcard()); @@ -268,8 +271,8 @@ public class BorrowServiceImpl implements BorrowService { @Override @Transactional - public Object deleteBorrower(List borrowerIds) { - borrowerRepository.deleteAllByIds(borrowerIds); + public Object delBorrower(List borrowerIds) { + borrowerRepository.delAllByIds(borrowerIds); return borrowerIds.size(); } diff --git a/archives/src/main/java/com/storeroom/modules/common/ExcelUtil.java b/archives/src/main/java/com/storeroom/modules/common/ExcelUtil.java index c9515b9..b42f366 100644 --- a/archives/src/main/java/com/storeroom/modules/common/ExcelUtil.java +++ b/archives/src/main/java/com/storeroom/modules/common/ExcelUtil.java @@ -1,13 +1,17 @@ package com.storeroom.modules.common; +import com.storeroom.modules.archives.domain.vo.BorrowBillDetailsVO; import org.apache.poi.hssf.usermodel.*; +import org.apache.poi.ss.usermodel.BorderStyle; import org.apache.poi.ss.usermodel.CellStyle; import org.apache.poi.ss.usermodel.HorizontalAlignment; import org.apache.poi.ss.usermodel.VerticalAlignment; +import org.apache.poi.xssf.usermodel.*; import javax.servlet.http.HttpServletResponse; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; +import java.util.List; public class ExcelUtil { @@ -60,6 +64,51 @@ public class ExcelUtil { return wb; } + public static XSSFWorkbook createBorrowerExcel(String fileName, List bills){ + + // 创建一个工作薄 + XSSFWorkbook workbook = new XSSFWorkbook(); + // 创建一个工作表 + XSSFSheet sheet = workbook.createSheet(fileName); + + // 设置表头字体格式 + XSSFFont headersFont = workbook.createFont(); + headersFont.setColor(new XSSFColor(java.awt.Color.DARK_GRAY)); + headersFont.setFontHeightInPoints((short) 14); + headersFont.setBold(true); + + // 设置正文字体格式 + XSSFFont dataSetFont = workbook.createFont(); + dataSetFont.setColor(new XSSFColor(java.awt.Color.BLACK)); + dataSetFont.setBold(false); + + // 创建表头样式 + XSSFCellStyle headersStyle = workbook.createCellStyle(); + headersStyle.setBorderTop(BorderStyle.THIN); + headersStyle.setBorderBottom(BorderStyle.THIN); + headersStyle.setBorderLeft(BorderStyle.THIN); + headersStyle.setBorderRight(BorderStyle.THIN); + headersStyle.setFont(headersFont); + // 表头内容对齐方式:居中 + headersStyle.setAlignment(HorizontalAlignment.CENTER); + + // 创建文本样式 + XSSFCellStyle textStyle = workbook.createCellStyle(); + textStyle.setBorderBottom(BorderStyle.THIN); + textStyle.setBorderRight(BorderStyle.THIN); + textStyle.setBorderLeft(BorderStyle.THIN); + textStyle.setFont(dataSetFont); + // 数据内容对齐方式:居中 + textStyle.setAlignment(HorizontalAlignment.CENTER); + + //行 + int index = 0; + + + + return workbook; + } + //发送响应流方法 public static void setResponseHeader(HttpServletResponse response, String fileName) { try {