提交 8121a990 authored 作者: zhoushaopan's avatar zhoushaopan

feat(装备模块,3D模块): 新增接口

新增接口
上级 c117d8b1
......@@ -12,6 +12,7 @@ import com.tykj.dev.device.library.subject.Dto.DeviceLogDto;
import com.tykj.dev.device.library.subject.domin.DeviceLibrary;
import com.tykj.dev.device.library.subject.domin.DeviceLibraryPosition;
import com.tykj.dev.device.library.subject.domin.DeviceLog;
import com.tykj.dev.device.library.subject.model.vo.QueryTheWarehouseVo;
import com.tykj.dev.device.library.subject.vo.*;
import com.tykj.dev.device.user.cache.UnitsCache;
import com.tykj.dev.device.user.subject.entity.Units;
......@@ -1206,6 +1207,14 @@ public class DeviceLibraryController {
return deviceLibraryService.getDevicesForWorkUse();
}
@Transactional(rollbackFor = Exception.class)
@PostMapping("/fnConditionQuery")
@ApiOperation(value = "查询库房的3D装备")
public ResponseEntity<Map<String, Object>> fnConditionQuery(@RequestBody QueryTheWarehouseVo queryTheWarehouseVo){
Map<String, Object> map = deviceLibraryService.fnConditionQuery(queryTheWarehouseVo);
return ResponseEntity.ok(map);
}
// @ApiOperation(value = "修改单位名称", notes = "修改单位名称")
......
......@@ -4,7 +4,9 @@ import com.tykj.dev.config.swagger.AutoDocument;
import com.tykj.dev.device.library.service.DeviceLibraryPositionService;
import com.tykj.dev.device.library.subject.domin.DeviceLibraryPosition;
import com.tykj.dev.device.library.subject.model.vo.ModifyWarehouseLocationsInBatchesVO;
import com.tykj.dev.device.library.subject.model.vo.QueryTheWarehouseVo;
import com.tykj.dev.device.library.subject.model.vo.UpdatePostionMessageVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
......@@ -30,13 +32,13 @@ public class DeviceLibraryPositionController {
@Resource
private DeviceLibraryPositionService deviceLibraryPositionService;
@Transactional(rollbackFor = Exception.class)
@PostMapping("/findByStorageLocationId")
@ApiOperation(value = "根据当前库房位置查询装备")
public ResponseEntity<Map<String, Object>> findByStorageLocationId(@RequestBody QueryTheWarehouseVo queryTheWarehouseVo){
Map<String, Object> map = deviceLibraryPositionService.fnConditionQuery(queryTheWarehouseVo);
return ResponseEntity.ok(map);
}
// @Transactional(rollbackFor = Exception.class)
// @PostMapping("/findByStorageLocationId")
// @ApiOperation(value = "查询库房的3D装备")
// public ResponseEntity<Map<String, Object>> fnConditionQuery(@RequestBody QueryTheWarehouseVo queryTheWarehouseVo){
// Map<String, Object> map = deviceLibraryPositionService.fnConditionQuery(queryTheWarehouseVo);
// return ResponseEntity.ok(map);
// }
@Transactional(rollbackFor = Exception.class)
@PostMapping("/updateDeviceLibraryPosition")
......@@ -65,4 +67,14 @@ public class DeviceLibraryPositionController {
return ResponseEntity.ok("删除成功");
}
@Transactional(rollbackFor = Exception.class)
@PostMapping("/fnUpdateLocation")
@ApiOperation(value = "批量修改位置")
public ResponseEntity<String> fnUpdateLocation(@RequestBody List<UpdatePostionMessageVO> updatePostionMessageVOS){
deviceLibraryPositionService.fnUpdateLocation(updatePostionMessageVOS);
return ResponseEntity.ok("修改成功");
}
}
......@@ -61,5 +61,11 @@ public interface DeviceLibraryPositionDao extends JpaRepository<DeviceLibraryPos
int batchUpdateStorageLocationSeqNumList(@Param("StorageLocationId") Integer StorageLocationId,
@Param("StorageLocation")String StorageLocation,@Param("deviceIds")List<String> deviceIds);
@Transactional
@Modifying
@Query("update DeviceLibraryPosition d set d.deviceLibraryPositionMessage = :deviceLibraryPositionMessage where d.id = :id")
int fnUpdateLocation(@Param("deviceLibraryPositionMessage") String deviceLibraryPositionMessage,
@Param("id")Integer id);
}
......@@ -2,6 +2,7 @@ package com.tykj.dev.device.library.service;
import com.tykj.dev.device.library.subject.domin.DeviceLibraryPosition;
import com.tykj.dev.device.library.subject.model.vo.QueryTheWarehouseVo;
import com.tykj.dev.device.library.subject.model.vo.UpdatePostionMessageVO;
import java.util.List;
import java.util.Map;
......@@ -54,12 +55,12 @@ public interface DeviceLibraryPositionService {
* @param deviceIds 装备id的集合
*/
void batchUpdateStorageLocation(Integer StorageLocationId,String StorageLocation,List<Integer> deviceIds);
/**
* 条件查询
* @param queryTheWarehouseVo 条件查询类
* @return
*/
Map<String,Object> fnConditionQuery(QueryTheWarehouseVo queryTheWarehouseVo);
// /**
// * 条件查询
// * @param queryTheWarehouseVo 条件查询类
// * @return
// */
// Map<String,Object> fnConditionQuery(QueryTheWarehouseVo queryTheWarehouseVo);
void updateModelByOldModel(String oldModel,String newModel);
......@@ -69,6 +70,8 @@ public interface DeviceLibraryPositionService {
List<DeviceLibraryPosition> findByModel(String model);
void fnUpdateLocation(List<UpdatePostionMessageVO> updatePostionMessageVO);
}
......@@ -2,6 +2,7 @@ package com.tykj.dev.device.library.service;
import com.tykj.dev.config.UpdateCache;
import com.tykj.dev.device.library.subject.domin.DeviceLibrary;
import com.tykj.dev.device.library.subject.model.vo.QueryTheWarehouseVo;
import com.tykj.dev.device.library.subject.vo.*;
import com.tykj.dev.device.user.util.DecryptMD5;
import org.springframework.data.domain.Page;
......@@ -550,4 +551,11 @@ public interface DeviceLibraryService {
List<DeviceLibrary> batchDevices(List<DeviceLibrary> deviceLibraryEntity);
/**
* 条件查询
* @param queryTheWarehouseVo 条件查询类
* @return
*/
Map<String,Object> fnConditionQuery(QueryTheWarehouseVo queryTheWarehouseVo);
}
package com.tykj.dev.device.library.service;
import com.tykj.dev.config.swagger.AutoDocument;
import com.tykj.dev.device.library.subject.model.vo.ModifyWarehouseLocationsInBatchesVO;
import com.tykj.dev.device.library.subject.vo.UpdateStorageLocationVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.http.ResponseEntity;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
* @author zsp
* @create 2022/1/7 14:14
*/
@RestController
@RequestMapping(value = "/public")
@AutoDocument
@Api(tags = "装备3d模块", description = "装备3d模块")
@Slf4j
public class PublicController {
@Resource
DeviceLibraryService deviceLibraryService;
@Resource
DeviceLibraryPositionService deviceLibraryPositionService;
@Transactional(rollbackFor = Exception.class)
@PostMapping("/fnModifyWarehouseLocationsInBatches")
@ApiOperation(value = "批量修改库房位置")
public ResponseEntity<String> fnModifyWarehouseLocationsInBatches(@RequestBody ModifyWarehouseLocationsInBatchesVO
modifyWarehouseLocationsInBatchesVO){
deviceLibraryPositionService.batchUpdateStorageLocation(modifyWarehouseLocationsInBatchesVO.getStorageLocationId(),
modifyWarehouseLocationsInBatchesVO.getStorageLocationName(), modifyWarehouseLocationsInBatchesVO.getDeviceIds());
UpdateStorageLocationVo updateStorageLocationVo = new UpdateStorageLocationVo();
BeanUtils.copyProperties(modifyWarehouseLocationsInBatchesVO,updateStorageLocationVo);
deviceLibraryService.updateStorageLocation(updateStorageLocationVo);
String s = modifyWarehouseLocationsInBatchesVO.getStorageLocationId() != null ? "入库成功" : "出库成功" ;
return ResponseEntity.ok(s);
}
}
......@@ -10,6 +10,7 @@ import com.tykj.dev.device.library.service.DeviceLibraryService;
import com.tykj.dev.device.library.subject.domin.DeviceLibrary;
import com.tykj.dev.device.library.subject.domin.DeviceLibraryPosition;
import com.tykj.dev.device.library.subject.model.vo.QueryTheWarehouseVo;
import com.tykj.dev.device.library.subject.model.vo.UpdatePostionMessageVO;
import com.tykj.dev.device.library.subject.vo.DeviceLibraryPositionMessageVo;
import com.tykj.dev.device.library.subject.vo.RotationVo;
import com.tykj.dev.device.user.util.UserUtils;
......@@ -105,45 +106,45 @@ public class DeviceLibraryPositionServiceImpl implements DeviceLibraryPositionSe
deviceLibraryPositionDao.batchUpdateStorageLocation(StorageLocationId, StorageLocation, deviceIds);
}
@Override
public Map<String,Object> fnConditionQuery(QueryTheWarehouseVo queryTheWarehouseVo) {
Map<String,Object> map = new HashMap<>();
Map<Integer, DeviceLibrary> deviceIdMap = deviceLibraryCacheService.getAllDeviceLibraryList().stream().collect(Collectors.toMap(DeviceLibrary::getId, Function.identity()));
PredicateBuilder<DeviceLibraryPosition> builder = createBuilder(queryTheWarehouseVo);
List<DeviceLibraryPosition> deviceLibraryPositions = deviceLibraryPositionDao.findAll(builder.build());
Page<DeviceLibraryPosition> page = PageUtil.getPerPage(queryTheWarehouseVo.getPage(),
queryTheWarehouseVo.getSize(), deviceLibraryPositions,
queryTheWarehouseVo.getPageable());
//进行转换
if (!deviceLibraryPositions.isEmpty()){
for (DeviceLibraryPosition deviceLibraryPosition : deviceLibraryPositions) {
deviceLibraryPosition.setDeviceLibraryPositionMessageVo(
JacksonUtil.readValue(deviceLibraryPosition.getDeviceLibraryPositionMessage(), new TypeReference<DeviceLibraryPositionMessageVo>() {}));
deviceLibraryPosition.setRotationVo(
JacksonUtil.readValue(deviceLibraryPosition.getRotation(), new TypeReference<RotationVo>() {}));
}
}
page.forEach(deviceLibraryPosition -> {
if (deviceIdMap.containsKey(deviceLibraryPosition.getDeviceId())) {
DeviceLibrary deviceLibrary= deviceIdMap.get(deviceLibraryPosition.getDeviceId()).setConfigName();
deviceLibraryPosition.setOwnUnitName(deviceLibrary.getOwnUnit());
deviceLibraryPosition.setTypeName(deviceLibrary.getTypeName());
}
});
List<String> models =
deviceLibraryPositions.stream().map(DeviceLibraryPosition::getModel).distinct().collect(Collectors.toList());
List<String> names =
deviceLibraryPositions.stream().map(DeviceLibraryPosition::getName).distinct().collect(Collectors.toList());
List<Integer> storageLocationIds =
deviceLibraryPositions.stream().map(DeviceLibraryPosition::getStorageLocationId).distinct().collect(Collectors.toList());
map.put("page",page);
map.put("models",models);
map.put("names",names);
map.put("storageLocationIds",storageLocationIds);
return map;
}
// @Override
// public Map<String,Object> fnConditionQuery(QueryTheWarehouseVo queryTheWarehouseVo) {
// Map<String,Object> map = new HashMap<>();
//
// Map<Integer, DeviceLibrary> deviceIdMap = deviceLibraryCacheService.getAllDeviceLibraryList().stream().collect(Collectors.toMap(DeviceLibrary::getId, Function.identity()));
//
// PredicateBuilder<DeviceLibraryPosition> builder = createBuilder(queryTheWarehouseVo);
// List<DeviceLibraryPosition> deviceLibraryPositions = deviceLibraryPositionDao.findAll(builder.build());
// Page<DeviceLibraryPosition> page = PageUtil.getPerPage(queryTheWarehouseVo.getPage(),
// queryTheWarehouseVo.getSize(), deviceLibraryPositions,
// queryTheWarehouseVo.getPageable());
// //进行转换
// if (!deviceLibraryPositions.isEmpty()){
// for (DeviceLibraryPosition deviceLibraryPosition : deviceLibraryPositions) {
// deviceLibraryPosition.setDeviceLibraryPositionMessageVo(
// JacksonUtil.readValue(deviceLibraryPosition.getDeviceLibraryPositionMessage(), new TypeReference<DeviceLibraryPositionMessageVo>() {}));
// deviceLibraryPosition.setRotationVo(
// JacksonUtil.readValue(deviceLibraryPosition.getRotation(), new TypeReference<RotationVo>() {}));
// }
// }
// page.forEach(deviceLibraryPosition -> {
// if (deviceIdMap.containsKey(deviceLibraryPosition.getDeviceId())) {
// DeviceLibrary deviceLibrary= deviceIdMap.get(deviceLibraryPosition.getDeviceId()).setConfigName();
// deviceLibraryPosition.setOwnUnitName(deviceLibrary.getOwnUnit());
// deviceLibraryPosition.setTypeName(deviceLibrary.getTypeName());
// }
// });
// List<String> models =
// deviceLibraryPositions.stream().map(DeviceLibraryPosition::getModel).distinct().collect(Collectors.toList());
// List<String> names =
// deviceLibraryPositions.stream().map(DeviceLibraryPosition::getName).distinct().collect(Collectors.toList());
// List<Integer> storageLocationIds =
// deviceLibraryPositions.stream().map(DeviceLibraryPosition::getStorageLocationId).distinct().collect(Collectors.toList());
// map.put("page",page);
// map.put("models",models);
// map.put("names",names);
// map.put("storageLocationIds",storageLocationIds);
// return map;
// }
@Override
public void updateModelByOldModel(String oldModel, String newModel) {
......@@ -165,6 +166,16 @@ public class DeviceLibraryPositionServiceImpl implements DeviceLibraryPositionSe
return deviceLibraryPositionDao.findAllByModel(model);
}
@Override
public void fnUpdateLocation(List<UpdatePostionMessageVO> updatePostionMessageVO) {
if (!updatePostionMessageVO.isEmpty()){
updatePostionMessageVO.forEach(updatePostionMessageVO1 -> {
String json = updatePostionMessageVO1.getDeviceLibraryPositionMessageVo().toJson();
deviceLibraryPositionDao.fnUpdateLocation(json, updatePostionMessageVO1.getId());
});
}
}
private PredicateBuilder<DeviceLibraryPosition> createBuilder(QueryTheWarehouseVo queryTheWarehouseVo){
PredicateBuilder<DeviceLibraryPosition> predicateBuilder = Specifications.and();
......
......@@ -17,6 +17,7 @@ import com.tykj.dev.device.library.service.DeviceLibraryService;
import com.tykj.dev.device.library.service.DeviceLogService;
import com.tykj.dev.device.library.subject.Dto.DeviceLogDto;
import com.tykj.dev.device.library.subject.domin.DeviceLibrary;
import com.tykj.dev.device.library.subject.model.vo.QueryTheWarehouseVo;
import com.tykj.dev.device.library.subject.vo.*;
import com.tykj.dev.device.library.utils.DeviceNumberUtils;
import com.tykj.dev.device.user.cache.UnitsCache;
......@@ -1265,6 +1266,31 @@ public class DeviceLibraryServiceImpl implements DeviceLibraryService {
return deviceLibraryDao.saveAll(deviceLibraryEntity);
}
@Override
public Map<String, Object> fnConditionQuery(QueryTheWarehouseVo queryTheWarehouseVo) {
Map<String,Object> map = new HashMap<>();
DeviceLibrarySelectVo deviceLibrarySelectVo = new DeviceLibrarySelectVo();
BeanUtils.copyProperties(queryTheWarehouseVo,deviceLibrarySelectVo);
PredicateBuilder<DeviceLibrary> predicateBuilder = getPredicateBuilder(deviceLibrarySelectVo);
List<DeviceLibrary> deviceLibraries = deviceLibraryDao.findAll(predicateBuilder.build());
deviceLibraries.forEach(DeviceLibrary::setConfigName);
Page<DeviceLibrary> deviceLibraryPage = PageUtil.getPerPage(queryTheWarehouseVo.getPage(),
queryTheWarehouseVo.getSize(), deviceLibraries, queryTheWarehouseVo.getPageable());
List<String> models =
deviceLibraries.stream().map(DeviceLibrary::getModel).distinct().collect(Collectors.toList());
List<String> seqNumberList = deviceLibraries.stream().map(DeviceLibrary::getSeqNumber).collect(Collectors.toList());
List<String> names =
deviceLibraries.stream().map(DeviceLibrary::getName).distinct().collect(Collectors.toList());
List<String> ownUnits =
deviceLibraries.stream().map(DeviceLibrary::getOwnUnit).distinct().collect(Collectors.toList());
map.put("deviceLibraryPage",deviceLibraryPage);
map.put("models",models);
map.put("seqNumberList",seqNumberList);
map.put("names",names);
map.put("ownUnits",ownUnits);
return map;
}
// @Override
// @UpdateCache
// public int updatePartParentId(List<Integer> deviceIds) {
......@@ -1427,6 +1453,9 @@ public class DeviceLibraryServiceImpl implements DeviceLibraryService {
predicateBuilder.eq(deviceLibrarySelectVo.getStorageLocationId() != null,"storageLocationId",deviceLibrarySelectVo.getStorageLocationId());
//新增装备的形态
predicateBuilder.eq(deviceLibrarySelectVo.getType() != null,"type",deviceLibrarySelectVo.getType());
//新增库房集合查询
predicateBuilder.in(deviceLibrarySelectVo.getStorageLocationIds() != null,"storageLocationId",
deviceLibrarySelectVo.getStorageLocationIds().toArray(new Integer[]{}));
}
return predicateBuilder;
}
......
package com.tykj.dev.device.library.subject.model.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @author zsp
* @create 2021/12/30 13:05
*/
@Data
@ApiModel("修改3d装备库房vo")
public class ModifyWarehouseLocationsInBatchesVO {
@ApiModelProperty(value = "装备id的集合")
public List<Integer> deviceIds;
@ApiModelProperty(value = "库房的id")
public Integer storageLocationId;
@ApiModelProperty(value = "库房的名称")
public String storageLocationName;
}
......@@ -22,12 +22,15 @@ public class QueryTheWarehouseVo extends CustomPage {
@ApiModelProperty(value = "名称", example = "BM-1")
public String name;
// @ApiModelProperty(value = "存储位置Id")
// private Integer storageLocationId;
@ApiModelProperty(value = "装备序列号", example = "123-1")
public String seqNumber;
@ApiModelProperty(value = "库房ids")
@ApiModelProperty(value = "其他库房ids")
private List<Integer> storageLocationIds;
@ApiModelProperty(value = "所属单位")
public String ownUnit;
@ApiModelProperty(value = "当前库房的id")
private Integer storageLocationId;
}
package com.tykj.dev.device.library.subject.model.vo;
import com.tykj.dev.device.library.subject.vo.DeviceLibraryPositionMessageVo;
import com.tykj.dev.misc.base.CustomPage;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @author zsp
* @create 2021/12/30 13:05
*/
@Data
@ApiModel("修改x,y,z位置")
public class UpdatePostionMessageVO extends CustomPage {
@ApiModelProperty(value = "id", example = "1")
public Integer id;
@ApiModelProperty(value = "位置类vo", example = "1")
private DeviceLibraryPositionMessageVo deviceLibraryPositionMessageVo;
}
......@@ -12,7 +12,6 @@ import org.springframework.stereotype.Repository;
*/
@Data
@ApiModel("位置信息")
@Repository
public class DeviceLibraryPositionMessageVo {
@ApiModelProperty("位置信息")
private String x;
......
......@@ -137,4 +137,7 @@ public class DeviceLibrarySelectVo extends CustomPage {
@ApiModelProperty(value = "作为已报废,已销毁,已退役的标志位",notes = "0 代表查询 1代表查询其他")
private Integer isScraped =1;
@ApiModelProperty(value = "库房ids")
private List<Integer> storageLocationIds;
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论