Browse Source

1.出入库接口调整 调取第三方设备接口

2.新增出入库日志、导出
master
xia 3 years ago
parent
commit
7df0612603
  1. 186
      archives/src/main/java/com/storeroom/modules/archives/controller/StorageController.java
  2. 2
      archives/src/main/java/com/storeroom/modules/archives/controller/TagController.java
  3. 49
      archives/src/main/java/com/storeroom/modules/archives/domain/StorageLog.java
  4. 31
      archives/src/main/java/com/storeroom/modules/archives/repository/ArchivesCaseRepository.java
  5. 20
      archives/src/main/java/com/storeroom/modules/archives/repository/StorageLogRepository.java
  6. 15
      archives/src/main/java/com/storeroom/modules/archives/service/ArchivesCaseService.java
  7. 3
      archives/src/main/java/com/storeroom/modules/archives/service/ArchivesService.java
  8. 104
      archives/src/main/java/com/storeroom/modules/archives/service/impl/ArchivesCaseServiceImpl.java
  9. 7
      archives/src/main/java/com/storeroom/modules/archives/service/impl/ArchivesServiceImpl.java
  10. 79
      archives/src/main/java/com/storeroom/modules/archives/util/HttpUtil.java
  11. 8
      common/src/main/java/com/storeroom/utils/enums/ResponseStatus.java
  12. 9
      storeroom/src/main/java/com/storeroom/modules/device/repository/DeviceArchivesTagRepository.java
  13. 8
      storeroom/src/main/java/com/storeroom/modules/device/service/DeviceArchivesTagService.java
  14. 9
      storeroom/src/main/java/com/storeroom/modules/device/service/impl/DeviceArchivesTagImpl.java

186
archives/src/main/java/com/storeroom/modules/archives/controller/StorageController.java

@ -1,21 +1,39 @@
package com.storeroom.modules.archives.controller;
import com.alibaba.fastjson.JSONObject;
import com.storeroom.annotaion.rest.AnonymousGetMapping;
import com.storeroom.annotaion.rest.AnonymousPostMapping;
import com.storeroom.modules.archives.domain.ArchivesCase;
import com.storeroom.modules.archives.domain.ArchivesSummary;
import com.storeroom.modules.archives.domain.ArchivesTagLog;
import com.storeroom.modules.archives.domain.StorageLog;
import com.storeroom.modules.archives.service.ArchivesCaseService;
import com.storeroom.modules.archives.service.ArchivesService;
import com.storeroom.modules.archives.service.dto.CaseDTO;
import com.storeroom.modules.archives.service.dto.CollectDTO;
import com.storeroom.modules.archives.util.HttpUtil;
import com.storeroom.modules.common.ExcelUtil;
import com.storeroom.modules.device.domain.DeviceArchivesTag;
import com.storeroom.modules.device.domain.DeviceInfo;
import com.storeroom.modules.device.domain.OperatingState;
import com.storeroom.modules.device.service.DeviceArchivesTagService;
import com.storeroom.modules.device.service.DeviceService;
import com.storeroom.modules.device.service.OperatingStateService;
import com.storeroom.modules.device.service.dto.DeviceInfoDto;
import com.storeroom.utils.ApiResponse;
import com.storeroom.utils.enums.ResponseStatus;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
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.io.OutputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
@RestController
@ -27,6 +45,10 @@ public class StorageController {
private final ArchivesCaseService caseService;
private final ArchivesService archivesService;
private final OperatingStateService operatingStateService;
private final DeviceArchivesTagService deviceArchivesTagService;
private final DeviceService deviceService;
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
@ApiOperation("可入库盒列表")
@GetMapping("/readyInto")
@ -47,17 +69,22 @@ public class StorageController {
@ApiOperation("初始化档案装盒信息")
@GetMapping("/initCaseByArchives")
public ApiResponse<Object> initCaseByArchives(
String archivesId
String caseId
){
return ApiResponse.success(caseService.initCaseByArchives(archivesId));
return ApiResponse.success(caseService.initCaseByArchives(caseId));
}
@ApiOperation("根据层架位id判断是否被占用")
@GetMapping("/isOccupy")
public ApiResponse<Object> isOccupy(
String shelfId
String deviceId,String position,Integer deviceType
){
return ApiResponse.success(archivesService.isShelfOccupy(shelfId));
DeviceArchivesTag deviceArchivesTag = deviceArchivesTagService.findByDeviceInfoIdAndPosition(deviceId,position);
if(null == deviceArchivesTag)
return ApiResponse.error(ResponseStatus.Shelf_IS_NULL);
if(1==deviceType)
ApiResponse.success(true);
return ApiResponse.success(archivesService.isShelfOccupy(deviceArchivesTag.getId()));
}
@ApiOperation("入库")
@ -75,29 +102,154 @@ public class StorageController {
//判断设备是否有联动
OperatingState linkage = operatingStateService.findByDeviceIdAndStateType(deviceId,1);
if(null != linkage && linkage.getInBound()){
DeviceInfoDto device = deviceService.findById(deviceId);
String url = "http://"+device.getDeviceIp()+":"+device.getDevicePort()+"IntelligentCabinetAPIServer/Task";
JSONObject json = new JSONObject();
json.put("id","1716F6C668C83A929C738B");
json.put("type",1);
json.put("title","一盒一卷");
json.put("filebox","1716F6C668C83A929C738B");
json.put("dangNum","一盒一卷");
json.put("position","1区5列6节2层左");
JSONObject json1 = new JSONObject();
json1.put("storeCode","12345678");
json1.put("quNo","1");
json1.put("colNo","5");
json1.put("leNo","6");
json1.put("divNo","2");
json1.put("zyNo","1");
json.put("positionKey",json1);
json.put("filetype",2);
String reselt = HttpUtil.wlwHttpURLConnection(url,json,null,null,null);
System.out.println(reselt);
}
return ApiResponse.success(cases.size());
}
@ApiOperation("预人工确认")
@PostMapping("/readyCollectConfirm")
public ApiResponse<Object> readyCollectConfirm(
@Validated @RequestBody List<String> caseIds
){
return ApiResponse.success(caseService.readyCollectConfirm(caseIds));
}
@ApiOperation("人工确认-入库")
@PostMapping("/collectConfirm")
public ApiResponse<Object> collectConfirm(
@Validated @RequestBody List<String> caseIds
){
return ApiResponse.success(caseService.collectConfirm(caseIds));
}
@ApiOperation("出库")
@PostMapping("/grant")
public ApiResponse<Object> grant(
@Validated @RequestBody List<CollectDTO> dtos
@Validated @RequestBody List<String> archivesIds
){
if(null == dtos || dtos.size()==0)
return ApiResponse.error(ResponseStatus.DEVICE_IS_NULL);
String deviceId = dtos.get(0).getDeviceId();
//判断设备是否有回调
OperatingState callback = operatingStateService.findByDeviceIdAndStateType(deviceId,2);
boolean isCallback = callback == null ? false : callback.getInBound();
List<ArchivesCase> cases = caseService.collect(isCallback,dtos);
//判断设备是否有联动
OperatingState linkage = operatingStateService.findByDeviceIdAndStateType(deviceId,1);
if(null != linkage && linkage.getInBound()){
Integer result = 0;
for(String archivesId:archivesIds){
ArchivesSummary archivesSummary = archivesService.findById(archivesId);
if(null == archivesSummary)
continue;
String[] shelfIds = archivesSummary.getShelfId().split(",");
if(shelfIds.length==0)
continue;
String deviceId = deviceArchivesTagService.findDeviceIdByShelfId(shelfIds[0]);
//判断设备是否有回调
OperatingState callback = operatingStateService.findByDeviceIdAndStateType(deviceId,2);
boolean isCallback = callback == null ? false : callback.getOutBound();
caseService.grant(isCallback,archivesSummary.getCaseNo());
//判断设备是否有联动
OperatingState linkage = operatingStateService.findByDeviceIdAndStateType(deviceId,1);
if(null != linkage && linkage.getOutBound()){
DeviceInfo device = new DeviceInfo();
String url = "http://"+device.getDeviceIp()+":"+device.getDevicePort()+"IntelligentCabinetAPIServer/Task";
// HttpUtil.wlwHttpURLConnection(url,)
}
result++;
}
return ApiResponse.success(cases.size());
return ApiResponse.success(result);
}
@ApiOperation("人工确认-出库")
@PostMapping("/grantConfirm")
public ApiResponse<Object> grantConfirm(
@Validated @RequestBody List<String> archivesIds
){
return ApiResponse.success(caseService.grantConfirm(archivesIds));
}
@ApiOperation("外部回调-确认出入库")
@AnonymousPostMapping("/externalCallback")
public ApiResponse<Object> externalCallback(
@Validated @RequestBody List<String> archivesIds
){
return ApiResponse.success(caseService.grantConfirm(archivesIds));
}
@ApiOperation("出入库记录")
@GetMapping("/initStorageLogList")
public ApiResponse<Object> initStorageLogList(
Integer storageType, String caseName,String tid,String barcode, Pageable page
){
return ApiResponse.success(caseService.initStorageLogList(storageType,caseName,tid,barcode,page));
}
@ApiOperation("导出出入库记录")
@AnonymousGetMapping("/exportStorageLogList")
public void exportStorageLogList(
HttpServletResponse response,
@RequestParam("logIds") List<Integer> logIds
){
List<StorageLog> logs = caseService.initStorageLogList(logIds);
String[] Etitle = {"序号","状态","已装","盒名称","TID","条形码","存放位置","操作时间"};
String [][] content = new String[logs.size()][];
for(int i = 0;i< logs.size();i++){
content[i] = new String[Etitle.length];
StorageLog log = logs.get(i);
content[i][0] = i+1+"";
String storageType = "";
switch (log.getStorageType()){
case 1:
storageType = "待入";
break;
case 2:
storageType = "已入";
break;
case 3:
storageType = "待出";
break;
case 4:
storageType = "已出";
break;
default:
break;
}
content[i][1] = storageType;
content[i][2] = log.getDepositNum()+"";
content[i][3] = log.getCaseName();
content[i][4] = log.getTid();
content[i][5] = log.getBarcode();
content[i][6] = log.getFolderLocationDetails();
content[i][7] = format.format(new Date(log.getCreateTime().getTime()));
}
HSSFWorkbook wb = ExcelUtil.getHSSFWorkbook("sheet",Etitle,content,null);
try {
ExcelUtil.setResponseHeader(response, "出入库记录"+format.format(new Date())+".xls");
OutputStream os = response.getOutputStream();
wb.write(os);
os.flush();
os.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}

2
archives/src/main/java/com/storeroom/modules/archives/controller/TagController.java

@ -82,7 +82,7 @@ public class TagController {
for(int i = 0;i<tagLogs.size();i++){
content[i] = new String[Etitle.length];
ArchivesTagLog log = tagLogs.get(i);
content[i][0] = i+"";
content[i][0] = i+1+"";
content[i][1] = log.getOperType() == 1? "绑定":"解绑";
content[i][2] = log.getTid();
content[i][3] = log.getBindingType() == 1 ? "档案" : log.getBindingType() == 2 ? "档案盒" : "层位";

49
archives/src/main/java/com/storeroom/modules/archives/domain/StorageLog.java

@ -0,0 +1,49 @@
package com.storeroom.modules.archives.domain;
import com.storeroom.base.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import javax.persistence.*;
import java.io.Serializable;
@Entity
@Getter
@Setter
@Table(name = "storage_log")
public class StorageLog extends BaseEntity implements Serializable {
@Id
@GeneratedValue(strategy= GenerationType.IDENTITY)
private Integer id;
@Column(name = "case_id")
@ApiModelProperty(value = "盒id")
private String caseId;
@Column(name = "case_name")
@ApiModelProperty(value = "盒名称")
private String caseName;
@Column(name = "deposit_num")
@ApiModelProperty(value = "存放数量")
private Integer depositNum;
@Column(name = "tid")
@ApiModelProperty(value = "标签id")
private String tid;
@Column(name = "barcode")
@ApiModelProperty(value = "条形码")
private String barcode;
@Column(name = "storage_type")
@ApiModelProperty(value = "存放状态 1.待入 2.已入 3.待出 4.已出")
private Integer storageType;
@Column(name = "folder_location_details")
@ApiModelProperty(value = "存放位置")
private String folderLocationDetails;
}

31
archives/src/main/java/com/storeroom/modules/archives/repository/ArchivesCaseRepository.java

@ -10,6 +10,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Map;
import java.util.Set;
public interface ArchivesCaseRepository extends JpaRepository<ArchivesCase, String>{
@ -19,18 +20,18 @@ public interface ArchivesCaseRepository extends JpaRepository<ArchivesCase, Stri
Page<ArchivesCase> initCaseList(String caseName, String tid,String barcode, Pageable page);
@Query(nativeQuery = true,
value = "select * from archives_case where storage_type != 2 and if(?1 is null,1=1,case_name like ?1) and " +
value = "select * from archives_case where storage_type != 2 and deposit_num != 0 and if(?1 is null,1=1,case_name like ?1) and " +
"if(?2 is null,1=1,tid like ?2) and if(?3 is null,1=1,barcode like ?3) ")
Page<ArchivesCase> readyIntoCase(String caseName, String tid,String barcode, Pageable page);
@Query(nativeQuery = true,
value = "SELECT asum.archives_id as archivesId,ace.storage_type as storageType,asum.child as child,asum.category_type as categoryType," +
value = "SELECT distinct asum.archives_id as archivesId,ace.storage_type as storageType,asum.child as child,asum.category_type as categoryType," +
"asum.category_name as categoryName,asum.fonds_no as fondsNo,asum.archive_no as archiveNo,asum.archive_year as archiveYear," +
"asum.maintitle as maintitle,asum.security_class as securityClass,asum.department as department,ace.case_name as caseName," +
"CONCAT(room.name ,'-' , di.device_name , '-' , dat.position_name) as seat,ace.storage_time as storageTime " +
"FROM archives_case ace " +
"INNER JOIN archives_case_cartoning acc ON ace.id = acc.case_id " +
"INNER JOIN archives_summary asum ON acc.archives_id = asum.archives_id " +
"INNER JOIN archives_summary asum ON acc.parent_id = asum.archives_id " +
"INNER JOIN device_archives_tag dat on asum.shelf_id = dat.id " +
"INNER JOIN device_info di ON dat.device_info_id = di.id " +
"INNER JOIN storeroom room ON di.storeroom_id = room.id " +
@ -75,5 +76,29 @@ public interface ArchivesCaseRepository extends JpaRepository<ArchivesCase, Stri
value = "select ac.* from archives_case ac inner join archives_case_cartoning acc on ac.id=acc.case_id where acc.parent_id = ?1 group by ac.id ")
List<ArchivesCase> initCaseByArchives(String archivesId);
@Query(nativeQuery = true,
value = "select ac.* from archives_case ac inner join archives_case_cartoning acc on ac.id=acc.case_id where acc.parent_id IN " +
"(select in1.parent_id from archives_case_cartoning in1 where in1.case_id = ?1) group by ac.id ")
List<ArchivesCase> initCaseAllByCaseId(String caseId);
@Modifying
@Transactional(rollbackFor = Exception.class)
@Query(nativeQuery = true,
value = "update archives_case set storage_type = ?2,deposit_num = ?3 where id in ?1")
void manualConfirm(List<String> caseIds,Integer storageType);
@Query(nativeQuery = true,
value = "select case_id from archives_case_cartoning acc where parent_id in ?1 group by case_id")
Set<String> findCaseIdsByarchivesIds(List<String> archivesIds);
@Query(nativeQuery = true,
value = "select ac.id as caseId,ac.case_name as caseName,ac.case_type as caseType,ac.tid as tid,ac.barcode," +
"ac.shelf_id as shelfId,ac.folder_location as folderLocation,ac.folder_location_details as folderLocationDetails," +
"ac.deposit_num as depositNum,ac.storage_type as storageType,(select group_concat(asy.maintitle) " +
"from archives_summary asy inner join archives_case_cartoning inacc on asy.archives_id = inacc.archives_id " +
"where inacc.case_id = ac.id) as maintitles from archives_case ac where ac.id in " +
"(select case_id from archives_case_cartoning where parent_id in " +
"(select parent_id from archives_case_cartoning acc where case_id in ?1 group by parent_id) group by case_id);")
List<Map<String,Object>> readyCollectConfirm(List<String> caseIds);
}

20
archives/src/main/java/com/storeroom/modules/archives/repository/StorageLogRepository.java

@ -0,0 +1,20 @@
package com.storeroom.modules.archives.repository;
import com.storeroom.modules.archives.domain.StorageLog;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import java.util.List;
public interface StorageLogRepository extends JpaRepository<StorageLog, Integer>{
@Query(nativeQuery = true,
value = "select * from storage_log where if(?1 is null,1=1,storage_type = ?1) " +
"and if(?2 is null,1=1,case_name like ?2) " +
"and if(?3 is null,1=1,tid like ?3) " +
"and if(?4 is null,1=1,barcode like ?4) ")
Page<StorageLog> initStorageLogList(Integer storageType, String caseName, String tid, String barcode, Pageable page);
}

15
archives/src/main/java/com/storeroom/modules/archives/service/ArchivesCaseService.java

@ -2,12 +2,15 @@ package com.storeroom.modules.archives.service;
import com.storeroom.modules.archives.domain.ArchivesCase;
import com.storeroom.modules.archives.domain.ArchivesCaseCartoning;
import com.storeroom.modules.archives.domain.ArchivesSummary;
import com.storeroom.modules.archives.domain.StorageLog;
import com.storeroom.modules.archives.service.dto.ArchivesCaseCartoningDTO;
import com.storeroom.modules.archives.service.dto.CaseDTO;
import com.storeroom.modules.archives.service.dto.CollectDTO;
import org.springframework.data.domain.Pageable;
import java.util.List;
import java.util.Map;
public interface ArchivesCaseService {
//初始化档案盒列表
@ -43,4 +46,16 @@ public interface ArchivesCaseService {
Object initCaseByArchives(String archivesId);
//入库
List<ArchivesCase> collect(boolean isCallback, List<CollectDTO> dtos);
//预手动恰如苦
List<Map<String,Object>> readyCollectConfirm(List<String> caseIds);
//手动入库确认
Object collectConfirm(List<String> caseIds);
//出库
Object grant(boolean isCallback,String caseIds);
//手动出库确认
Object grantConfirm(List<String> archivesIds);
//出入库记录
Object initStorageLogList(Integer storageType, String caseName,String tid,String barcode, Pageable page);
//根据id集合获取出入库列表
List<StorageLog> initStorageLogList(List<Integer> logs);
}

3
archives/src/main/java/com/storeroom/modules/archives/service/ArchivesService.java

@ -1,5 +1,6 @@
package com.storeroom.modules.archives.service;
import com.storeroom.modules.archives.domain.ArchivesSummary;
import com.storeroom.modules.archives.domain.vo.ArchivesDetailsVO;
import com.storeroom.modules.archives.service.dto.ArchivesDTO;
import com.storeroom.modules.archives.service.dto.ArchivesFileDTO;
@ -9,6 +10,8 @@ import org.springframework.data.domain.Pageable;
import java.util.List;
public interface ArchivesService {
//根据档案id获取档案详细数据
ArchivesSummary findById(String archivesId);
//初始化档案列表标题
Object initArchivesViewTable(String categoryId);
//初始化档案列表

104
archives/src/main/java/com/storeroom/modules/archives/service/impl/ArchivesCaseServiceImpl.java

@ -3,15 +3,18 @@ package com.storeroom.modules.archives.service.impl;
import com.storeroom.modules.archives.domain.ArchivesCase;
import com.storeroom.modules.archives.domain.ArchivesCaseCartoning;
import com.storeroom.modules.archives.domain.ArchivesSummary;
import com.storeroom.modules.archives.domain.StorageLog;
import com.storeroom.modules.archives.repository.ArchivesCaseCartoningRepository;
import com.storeroom.modules.archives.repository.ArchivesCaseRepository;
import com.storeroom.modules.archives.repository.ArchivesSummaryRepository;
import com.storeroom.modules.archives.repository.StorageLogRepository;
import com.storeroom.modules.archives.service.ArchivesCaseService;
import com.storeroom.modules.archives.service.dto.ArchivesCaseCartoningDTO;
import com.storeroom.modules.archives.domain.vo.ArchivesCaseVO;
import com.storeroom.modules.archives.service.dto.CaseDTO;
import com.storeroom.modules.archives.service.dto.CollectDTO;
import com.storeroom.modules.common.ArchivesTypeEnum;
import com.storeroom.modules.device.repository.DeviceArchivesTagRepository;
import com.storeroom.modules.dictionary.domain.ArchivesType;
import com.storeroom.modules.dictionary.repository.ArchivesTypeRepository;
import com.storeroom.utils.NanoIdUtils;
@ -39,6 +42,8 @@ public class ArchivesCaseServiceImpl implements ArchivesCaseService {
private final ArchivesSummaryRepository archivesSummaryRepository;
private final ArchivesTypeRepository archivesTypeRepository;
private final ArchivesCaseCartoningRepository archivesCaseCartoningRepository;
private final StorageLogRepository storageLogRepository;
private final DeviceArchivesTagRepository deviceArchivesTagRepository;
@PersistenceContext
EntityManager entityManager;
@ -415,8 +420,8 @@ public class ArchivesCaseServiceImpl implements ArchivesCaseService {
}
@Override
public Object initCaseByArchives(String archivesId) {
return caseRepository.initCaseByArchives(archivesId);
public Object initCaseByArchives(String caseId) {
return caseRepository.initCaseAllByCaseId(caseId);
}
@Override
@ -458,8 +463,101 @@ public class ArchivesCaseServiceImpl implements ArchivesCaseService {
archices.add(summary);
}
}
caseRepository.saveAllAndFlush(cases);
cases = caseRepository.saveAllAndFlush(cases);
archivesSummaryRepository.saveAllAndFlush(archices);
List<StorageLog> storageLogs = new ArrayList<>();
for (ArchivesCase archivesCase:cases){
StorageLog log = new StorageLog();
log.setCaseId(archivesCase.getId());
log.setCaseName(archivesCase.getCaseName());
log.setDepositNum(archivesCase.getDepositNum());
log.setTid(archivesCase.getTid());
log.setBarcode(archivesCase.getBarcode());
log.setStorageType(isCallback ? 1:2);
log.setFolderLocationDetails(deviceArchivesTagRepository.findPositionDetailsByShelfId(archivesCase.getShelfId()));
storageLogs.add(log);
}
storageLogRepository.saveAll(storageLogs);
return cases;
}
@Override
public List<Map<String,Object>> readyCollectConfirm(List<String> caseIds) {
return caseRepository.readyCollectConfirm(caseIds);
}
@Override
public Object collectConfirm(List<String> caseIds) {
caseRepository.manualConfirm(caseIds,2);
return caseIds.size();
}
@Override
public Object grant(boolean isCallback, String caseNo) {
String[] caseIds = caseNo.split(",");
List<ArchivesCase> cases = new ArrayList<>();
if(isCallback){
for(String caseId:caseIds){
ArchivesCase thisCase = caseRepository.findById(caseId).get();
thisCase.setStorageType(3);
cases.add(thisCase);
}
cases = caseRepository.saveAllAndFlush(cases);
}else{
Set<ArchivesSummary> summarySet = new HashSet<>();
for(String caseId:caseIds){
ArchivesCase thisCase = caseRepository.findById(caseId).get();
thisCase.setStorageType(0);
thisCase.setShelfId(null);
thisCase.setFolderLocation(null);
thisCase.setFolderLocationDetails(null);
cases.add(thisCase);
List<ArchivesSummary> thisSummarys = archivesSummaryRepository.findAllByCaseNoLike(caseId);
summarySet.addAll(thisSummarys);
}
List<ArchivesSummary> grantSummary = new ArrayList<>();
for(ArchivesSummary thisSummary:summarySet){
thisSummary.setShelfId(null);
thisSummary.setFolderLocation(null);
thisSummary.setFolderLocationDetails(null);
grantSummary.add(thisSummary);
}
cases = caseRepository.saveAllAndFlush(cases);
archivesSummaryRepository.saveAllAndFlush(grantSummary);
}
List<StorageLog> storageLogs = new ArrayList<>();
for (ArchivesCase archivesCase:cases){
StorageLog log = new StorageLog();
log.setCaseId(archivesCase.getId());
log.setCaseName(archivesCase.getCaseName());
log.setDepositNum(archivesCase.getDepositNum());
log.setTid(archivesCase.getTid());
log.setBarcode(archivesCase.getBarcode());
log.setStorageType(isCallback ? 3:4);
log.setFolderLocationDetails(isCallback ? deviceArchivesTagRepository.findPositionDetailsByShelfId(archivesCase.getShelfId()) : null);
storageLogs.add(log);
}
storageLogRepository.saveAll(storageLogs);
return caseIds.length;
}
@Override
public Object grantConfirm(List<String> archivesIds) {
Set<String> caseIds = caseRepository.findCaseIdsByarchivesIds(archivesIds);
caseRepository.manualConfirm(caseIds.stream().toList(),0);
return caseIds.size();
}
@Override
public Object initStorageLogList(Integer storageType, String caseName, String tid, String barcode, Pageable page) {
caseName = StringUtils.isEmpty(caseName) ? null : "%"+ caseName +"%";
tid = StringUtils.isEmpty(tid) ? null : "%"+ tid +"%";
barcode = StringUtils.isEmpty(barcode) ? null : "%"+ barcode +"%";
return PageUtil.toPage(storageLogRepository.initStorageLogList(storageType,caseName,tid,barcode,page));
}
@Override
public List<StorageLog> initStorageLogList(List<Integer> logs) {
return storageLogRepository.findAllById(logs);
}
}

7
archives/src/main/java/com/storeroom/modules/archives/service/impl/ArchivesServiceImpl.java

@ -48,6 +48,11 @@ public class ArchivesServiceImpl implements ArchivesService {
@PersistenceContext
EntityManager entityManager;
@Override
public ArchivesSummary findById(String archivesId) {
return archivesSummaryRepository.findByArchivesId(archivesId);
}
@Override
public Object initArchivesViewTable(String categoryId) {
List<ArchivesDictionary> queryShow = archivesDictionaryRepository.findDisPlay(categoryId);
@ -923,6 +928,6 @@ public class ArchivesServiceImpl implements ArchivesService {
@Override
public boolean isShelfOccupy(String shelfId) {
Integer count = archivesSummaryRepository.countAllByShelfId(shelfId);
return count==0 ? false:true;
return count==0 ? true:false;
}
}

79
archives/src/main/java/com/storeroom/modules/archives/util/HttpUtil.java

@ -0,0 +1,79 @@
package com.storeroom.modules.archives.util;
import cn.hutool.http.HttpRequest;
import com.alibaba.fastjson.JSONObject;
import org.apache.http.HttpEntity;
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
//import cn.hutool.json.JSONObject;
import java.io.IOException;
import java.sql.Timestamp;
import java.util.HashMap;
public class HttpUtil {
public static String wlwHttpURLConnection(String url, JSONObject reqBody, String appid, String appSecret, String sign){
// 获得http请求
String httpRes= HttpRequest.post(url)
.body(reqBody.toString())
.header("Content-Type", "application/json;charset=utf-8")
// .header("appid",appid)
.header("timestamp",new Timestamp(System.currentTimeMillis()).toString())
// .header("sign",sign)
.execute().body();
return httpRes;
}
public static String request(String url,HashMap<String,Object> paramMap){
//map转json
String json = JSONObject.toJSONString(paramMap);
String returnValue = "这是默认返回值,接口调用失败";
CloseableHttpClient httpClient = HttpClients.createDefault();
CloseableHttpResponse response = null;
HttpEntity entity = null;
ResponseHandler<String> responseHandler = new BasicResponseHandler();
try{
//第一步创建HttpClient对象
httpClient = HttpClients.createDefault();
//第二步创建httpPost对象
HttpPost httpPost = new HttpPost(url);
//第三步设置请求头
httpPost.addHeader("Content-Type","application/json;charset=utf-8");
//第四步给httpPost设置JSON格式的参数
StringEntity requestEntity = new StringEntity(json,"UTF-8");
requestEntity.setContentEncoding("UTF-8");
httpPost.setHeader("Content-type", "application/json");
httpPost.setEntity(requestEntity);
//第五步发送HttpPost请求获取返回值
response = httpClient.execute(httpPost); //调接口获取返回值时必须用此方法
returnValue = httpClient.execute(httpPost,responseHandler); //调接口获取返回值时必须用此方法
entity = response.getEntity();
returnValue = EntityUtils.toString(entity, "UTF-8");
}
catch(Exception e)
{
e.printStackTrace();
}
finally {
try {
httpClient.close();
} catch (IOException e) {
e.printStackTrace();
}
}
//第六步处理返回值
System.out.println(returnValue);
return returnValue;
}
}

8
common/src/main/java/com/storeroom/utils/enums/ResponseStatus.java

@ -23,8 +23,14 @@ public enum ResponseStatus {
FIELD_REPEAT(5001,"当前字段重复"),
//当前标签已被绑定
LABEL_BOUND(6201,"当前标签已被绑定"),
//档案为空
ARCHIVES_IS_NULL(6301,"找不到当前档案"),
//设备 为空
DEVICE_IS_NULL(7001,"找不到当前设备");
DEVICE_IS_NULL(7001,"找不到当前设备"),
//层架位不存在
Shelf_IS_NULL(7010,"层架位不存在"),
//档案未入库
ARCHIVES_NOT_COLLECT(8001,"该档案未入库");

9
storeroom/src/main/java/com/storeroom/modules/device/repository/DeviceArchivesTagRepository.java

@ -18,7 +18,14 @@ public interface DeviceArchivesTagRepository extends JpaRepository<DeviceArchive
@Query(value = "update DeviceArchivesTag set tid = null where tid = ?1")
void unbindTag(String tid);
@Query("select deviceInfoId from DeviceArchivesTag where id = ?1 ")
String findDeviceIdByShelfId(String shelfId);
@Query(nativeQuery = true,
value = "SELECT CONCAT(room.name ,'-' , di.device_name , '-' , dat.position_name) as seat " +
"FROM device_archives_tag dat INNER JOIN device_info di on dat.device_info_id = di.id " +
"INNER JOIN storeroom room ON di.storeroom_id = room.id WHERE dat.id = ?1")
String findPositionDetailsByShelfId(String shelfId);
List<DeviceArchivesTag> findByDeviceInfoIdAndAndPosition(String deviceInfoId,String position);

8
storeroom/src/main/java/com/storeroom/modules/device/service/DeviceArchivesTagService.java

@ -1,7 +1,9 @@
package com.storeroom.modules.device.service;
public interface DeviceArchivesTagService {
import com.storeroom.modules.device.domain.DeviceArchivesTag;
Boolean findByDeviceInfoIdAndPosition(String deviceInfoId,String position);
public interface DeviceArchivesTagService {
//根据层架位id获取设备id
String findDeviceIdByShelfId(String shelfId);
DeviceArchivesTag findByDeviceInfoIdAndPosition(String deviceInfoId, String position);
}

9
storeroom/src/main/java/com/storeroom/modules/device/service/impl/DeviceArchivesTagImpl.java

@ -19,12 +19,17 @@ public class DeviceArchivesTagImpl implements DeviceArchivesTagService {
private final DeviceArchivesTagRepository deviceArchivesTagRepository;
@Override
public Boolean findByDeviceInfoIdAndPosition(String deviceInfoId, String position) {
public String findDeviceIdByShelfId(String shelfId) {
return deviceArchivesTagRepository.findDeviceIdByShelfId(shelfId);
}
@Override
public DeviceArchivesTag findByDeviceInfoIdAndPosition(String deviceInfoId, String position) {
if (StringUtils.isEmpty(deviceInfoId) && StringUtils.isEmpty(position)) {
throw new BaseException("查询数据异常");
}
List<DeviceArchivesTag> deviceArchivesTags = deviceArchivesTagRepository.findByDeviceInfoIdAndAndPosition(deviceInfoId, position);
return deviceArchivesTags.size() != 0;
return deviceArchivesTags.size() == 0 ? null:deviceArchivesTags.get(0);
}
}
Loading…
Cancel
Save